Heim  >  Artikel  >  Java  >  Natives Schlüsselwort in Java

Natives Schlüsselwort in Java

王林
王林Original
2024-08-30 15:21:451020Durchsuche

Das native Schlüsselwort fungiert als Verbindung zwischen der JAVA-Sprache und einem Teil des Codes oder der Bibliothek, der in anderen Sprachen außer JAVA geschrieben ist, was von der Maschine abhängen kann, auf der Sie arbeiten. Wenn das native Schlüsselwort auf eine Methode angewendet wird, bedeutet dies, dass die Methode mit nativem Code implementiert wird, der in einer anderen Sprache (wie C oder C++) über JNI (JAVA native Schnittstelle) geschrieben wurde.

Syntax des nativen Schlüsselworts in Java

Die Syntax von nativem Code ist dieselbe wie die der normalen Funktionsdefinition, wobei am Anfang der Funktion das Schlüsselwort „native“ hinzugefügt wird.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Zum Beispiel:

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. Abhängig vom Schlüsselwort kann es eine Ganzzahl, ein Zeichen oder ein Boolescher Wert sein.  Der an diese Funktion übergebene Parameter ist ebenfalls vom Datentyp string. Alles sollte unterklassig gehalten werden.

Nach der Funktionsdeklaration rufen wir diese Funktion über das erstellte Objekt und die geladene Bibliothek auf.

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 werden, und dann wird ihr Objekt erstellt. Mit Hilfe dieses Objekts wird die native Funktion aufgerufen.

Wie funktioniert das Native-Schlüsselwort?

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

Wenn der Legacy-Code mit Hardware interagiert, folgt er nicht den von JAVA festgelegten Richtlinien. Dieser Code führt die gewünschte Verarbeitung durch, um die Ausgabe zu erhalten und die Ergebnisse an JNI weiterzuleiten. Die native Java-Schnittstelle checkt dann ihr Verzeichnis ein, das alle Regeln für den nativen Code enthält (diese befindet sich in einer Datei namens javah.exe im SDK). JNI ist als Teil des Java-Toolkits konzipiert. Nach dieser Verarbeitung veröffentlicht JAVA die Ausgaben in der JAVA-Sprache selbst. Wenn wir das JAVA-Programm erstellen, müssen wir sicherstellen, dass zwischen der JAVA-Datei und der Legacy-Datei eine Variablen-/Datenflussverbindung besteht, damit zwischen beiden ein reibungsloser Datenfluss gewährleistet ist.

Im Folgenden finden Sie Schritte zur Erläuterung der Verwendung nativer Schlüsselwörter:

  1. Schreiben Sie den JAVA-Code, der die native Methode enthält, laden Sie die gemeinsam genutzte Bibliothek und speichern Sie ihn mit „Dateiname.JAVA“.
  2. Kompilieren Sie JAVA-Code und konvertieren Sie den Code in Bytecode.
  3. Erstellen Sie eine C/C++-Header-Datei, die eine native Funktionssignatur enthält, die aufgerufen werden soll.
  4. Das Schreiben von C/C++-Code verfügt über eine native Methodenimplementierung.
  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: Paket 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);
}
}

Nachdem wir diesen Code in der neuen „Klasse“ des Java-Projekts gespeichert haben, müssen wir eine Ausführungsumgebung einrichten, um eine Header-Datei zu generieren.

Natives Schlüsselwort in Java

Wenn wir dies ausführen, sollte eine Bibliothek generiert werden.

Ausgabe:

Hier haben wir die Header-Datei aus dem Java-Code erstellt, die den nativen Code und die Java-Sprache verknüpft.

Natives Schlüsselwort in Java

Vorteile des nativen Schlüsselworts in Java

Im Folgenden sind einige der Vorteile aufgeführt.

  1. Es bietet einen zusätzlichen Vorteil von JAVA, mit dem in anderen Sprachen geschriebenen Code zu interagieren und den Aufwand zu reduzieren, den gleichen Code in JAVA zu schreiben, wodurch die Coderedundanz verringert wird.
  2. Es verbessert die Gesamtleistung des Codes. Da der Code in anderen Sprachen geschrieben ist, ist er möglicherweise schneller, wenn er mit der Maschinensprache arbeitet als mit JAVA. Wir können dann das JAVA-Programm verwenden, um diesen Code aufzurufen.
  3. Mit diesem Ansatz können wir Systemaufrufe direkt durchführen. Reduziert die Wahrscheinlichkeit externer Störungen und verbessert die Geschwindigkeit der Codeausführung.
  4. Sie können eine vorinstallierte Bibliothek (in einer anderen Sprache als JAVA geschrieben) dynamisch aufrufen, indem Sie einen beliebigen, in JAVA geschriebenen Treibercode verwenden und trotzdem eine Antwort in JAVA erhalten.
  5. Es macht es für JAVA zugänglich, auf die Hardwareressourcen zuzugreifen, die nur für die Verwendung durch andere Sprachen verfügbar sind.
  6. Falls Sie für Ihre Anwendung bereits einen plattformabhängigen Code erstellt haben und dessen Funktionen nicht über JAVA unterstützt werden, können wir über nativen Code verfügen und diesen nativen Code über das native Schlüsselwort mit JAVA verknüpfen.

Regeln

Die Regeln für ein natives Schlüsselwort lauten wie folgt.

  1. Das native Schlüsselwort ist vor dem Methodennamen zu verwenden.
  2. Die Deklaration nativer Methoden hat keinen Hauptteil und sollte mit einem Semikolon enden, da diese Methoden nicht in JAVA definiert sind, sondern in der Sprache C/C++ vorhanden sind.
  3. Native Methoden können nicht als abstrakte Methode deklariert werden.
  4. Da es keine Sicherheit gibt, ob der bisherige alte Code in Übereinstimmung mit dem IEEE 754-Standard 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 ), daher können wir diese nativen Methoden nicht als strictftp deklarieren.
  5. JAVA entwirft die Java Native Interface (JNI)-Spezifikation, um die Regeln und Deklarationen zur Implementierung nativer Methoden zu definieren, wie z. B. die Konvertierung von Datentypen zwischen Java und dem nativen Code.

Fazit

Das Schlüsselwort „Native“ schließt die Lücke zwischen Muttersprachen und JAVA. Dies kann als entscheidende Verbindung verwendet werden, wenn die Interaktion unserer Software mit der Hardware durch die Nutzung bereits vorhandenen Codes effizienter ist. Dadurch ist der Implementierungsaufwand im Vergleich zum Entwurf eines neuen Anwendungscodes von Grund auf geringer, wo immer er vermeidbar wäre.

Das obige ist der detaillierte Inhalt vonNatives Schlüsselwort in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn