Einführung in das native Schlüsselwort in Java

Das native Schlüsselwort fungiert als Verknüpfung zwischen der JAVA-Sprache und einem Teil des Codes oder der Bibliothek, der bzw. die in verschiedenen Sprachen geschrieben ist, mit Ausnahme von JAVA, das möglicherweise von der Maschine abhängt, auf der Sie arbeiten. Wenn das native Schlüsselwort auf eine Methode angewendet wird, bedeutet dies, dass die Methode mithilfe von nativem Code implementiert wird, der in einer anderen Sprache (wie C oder C ++) über JNI (native JAVA-Schnittstelle) geschrieben wurde.

Syntax

Die Syntax des nativen Codes entspricht der normalen Funktionsdefinition, wobei das Schlüsselwort "native" zu Beginn der Funktion hinzugefügt wird.

Beispielsweise:

Public class testing
(public native String testMethod (String parameter);)

Hier ist die Öffentlichkeit ein Zugriffsmodifikator. Es sollte öffentlich sein, damit eine andere Datei es verwenden kann. Der String ist der Rückgabedatentyp der Funktion. Es kann je nach Schlüsselwort eine Ganzzahl, ein Zeichen oder ein Boolescher Wert sein. Der an diese Funktion übergebene Parameter ist ebenfalls vom Datentyp string. Alles sollte unterbewertet werden.

Nach der Funktionsdeklaration rufen wir diese Funktion über das Objekt auf, das erstellt und die Bibliothek geladen wurde.

public static void main(String() args)
(
System.loadLibrary("testing");
testing testingnew = new testing();
String output = testingnew.stringMethod("NATIVE");
)

Die oben definierte Bibliothek sollte zuerst geladen und das Objekt erstellt werden. Mit Hilfe dieses Objekts wird die native Funktion aufgerufen.

Wie funktioniert das native Keyword?

Es sollten zwei Dateien vorhanden sein. Eines enthält JAVA-Code, während das andere C / C ++ - Legacy-Code enthalten sollte. Java-Code wird zum Aufrufen des Legacy-Codes verwendet. Dieser Legacy-Code interagiert mit der Hardware und gibt die erwartete Ausgabe zurück.

Wenn der Legacy-Code mit Hardware interagiert, befolgt er nicht die von JAVA festgelegten Richtlinien. Dieser Code führt die gewünschte Verarbeitung durch, um die Ausgabe zu erhalten und die Ergebnisse an JNI zu übergeben. Die native Java-Schnittstelle prüft dann in ihrem Verzeichnis, das alle Regeln enthält, die sich auf den nativen Code beziehen. (Diese Datei wird im SDK als javah.exe bezeichnet.) JNI ist als Teil des Java-Toolkits konzipiert. Nach dieser Verarbeitung veröffentlicht JAVA die Ausgaben in der JAVA-Sprache. Wenn wir das Programm in JAVA erstellen, müssen wir sicherstellen, dass zwischen der JAVA-Datei und der Legacy-Datei eine Verbindung zwischen Variable und Datenfluss besteht, damit ein reibungsloser Datenfluss zwischen beiden besteht.

Die folgenden Schritte erläutern, wie native Schlüsselwörter verwendet werden:

  1. Schreiben Sie den JAVA-Code, der die native Methode und die geladene gemeinsam genutzte Bibliothek enthält, und speichern Sie ihn mit "filename.JAVA".
  2. Kompilieren Sie JAVA-Code und konvertieren Sie den Code in Bytecode.
  3. Erstellen Sie eine C / C ++ - Headerdatei mit einer nativen Funktionssignatur, die aufgerufen werden soll.
  4. Das Schreiben von C / C ++ - Code hat die Implementierung einer systemeigenen Methode.
  5. Führen Sie die ausführbare JAVA-Datei aus, um die Ergebnisse anzuzeigen.

Beispiel

Wir sollten Code in Eclipse schreiben und den Code ausführen, um eine Bibliothek zu erstellen, mit der dann C-Code implementiert wird.

Code : package com.slackerOne;

public class JPP (
public static native void pAccess();
public static native int pRead();
public static native void pWrite(int port, int output);
static(
System.loadLibrary("JPPlibs");
)
public void jAccess()(
JPP.pAccess();
)
public int jRead()(
return JPP.pRead();
)
public void jWrite(int port, int output)(
JPP.pWrite(port, output);
)
)

Nach dem Speichern dieses Codes in der neuen "Klasse" des Java-Projekts. Wir müssen eine Ausführungsumgebung einrichten, um eine Header-Datei zu generieren.

Wenn wir dies ausführen, sollten wir eine Bibliothek generieren lassen.

Ausgabe:

Hier haben wir die Header-Datei aus dem Java-Code erstellt, der als Verbindung zwischen nativem Code und der Java-Sprache fungiert.

Vorteile von Native Keyword in Java

  1. Es bietet einen zusätzlichen Vorteil für JAVA, mit dem in anderen Sprachen geschriebenen Code zu interagieren und die Arbeit zu reduzieren, damit derselbe Code in JAVA geschrieben wird, wodurch die Code-Redundanz verringert wird.
  2. Es verbessert die Gesamtcodeleistung. Da der Code in anderen Sprachen geschrieben ist, ist er möglicherweise schneller, wenn er mit der Maschinensprache im Vergleich zu JAVA funktioniert. Wir können dann das JAVA-Programm verwenden, um diesen Code aufzurufen.
  3. Mit diesem Ansatz können wir Systemaufrufe direkt tätigen. Reduzieren der Wahrscheinlichkeit von externen Interferenzen und Verbessern der Geschwindigkeit der Codeausführung.
  4. Sie können eine vorab geladene Bibliothek (die in einer anderen Sprache als JAVA geschrieben ist) mit einem beliebigen in JAVA geschriebenen Fahrcode dynamisch aufrufen und erhalten dennoch eine Antwort in JAVA.
  5. Damit kann JAVA auf die Hardwareressourcen zugreifen, die nur für andere Sprachen verfügbar sind.
  6. Falls Sie bereits einen plattformabhängigen Code für Ihre Anwendung erstellt haben und dessen Funktionen nicht über JAVA unterstützt werden, können wir in diesem Fall über systemeigenen Code verfügen und diesen systemeigenen Code über ein systemeigenes Schlüsselwort mit JAVA verknüpfen.

Regeln

  1. Das native Schlüsselwort ist vor dem Methodennamen zu verwenden.
  2. Die native Methodendeklaration hat keinen Body und sollte mit einem Semikolon enden, da diese Methoden nicht in JAVA definiert sind, sondern in C / C ++ vorhanden sind.
  3. Native Methoden können nicht als abstrakte Methode deklariert werden.
  4. Da es keine Sicherheit gibt, wenn der vorherige alte Code gemäß dem Standard IEEE 754 geschrieben wurde (Der IEEE-Standard für Gleitkomma-Arithmetik ist ein technischer Standard für Gleitkomma-Arithmetik, der 1985 vom Institute of Electrical and Electronics Engineers festgelegt wurde), Wir können diese nativen Methoden nicht als strictftp deklarieren.
  5. Die JNI-Spezifikation (Java Native Interface) wurde von JAVA entwickelt, um die Regeln und Deklarationen für die Implementierung systemeigener Methoden wie die Konvertierung von Datentypen zwischen Java und systemeigenem Code zu definieren.

Fazit

Das native Schlüsselwort schließt die Lücke zwischen Muttersprachen und JAVA. Dies kann als wichtige Verbindung verwendet werden, wenn die Interaktion unserer Software mit der Hardware eher dazu dient, den effizienten Code mithilfe von bereits vorhandenem Code zu erhalten. Dadurch wird die Implementierung im Vergleich zum Entwerfen eines neuen Anwendungscodes von Grund auf verringert, wo immer dies vermieden werden könnte.

Empfohlene Artikel

Dies ist eine Anleitung zum nativen Schlüsselwort in Java. Hier wird erläutert, wie das Schlüsselwort Native mit den Beispielen sowie den Vorteilen und Regeln funktioniert. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. JTabbedPane in Java
  2. Geschütztes Schlüsselwort in Java
  3. Java virtuelle Maschine
  4. Swing-Komponenten in Java
  5. C ++ - Schlüsselwörter