[JAVA] Punkt 66: Verwenden Sie native Methoden mit Bedacht
66. Native Methoden sollten mit Vorsicht angewendet werden
native Methode
Sie können in C oder C ++ geschriebene Methoden über das Java Native Interface (JNI) aufrufen.
In der Vergangenheit haben native Methoden drei Verwendungszwecke.
- Zugriff auf plattformspezifische Funktionen wie die Windows-Registrierung
- Verwendung einer Bibliothek mit nativem Code, einschließlich einer Bibliothek für den Zugriff auf Altdaten
- Um die Leistung zu verbessern
Es ist legitim, native Methoden zu verwenden, um auf plattformspezifische Funktionen zuzugreifen.
Das heißt, Java ist gereift, so dass es die meisten seiner Funktionen hat. Mit Java 9 können Sie beispielsweise auf Betriebssystemprozesse zugreifen.
Sie können die native Methode auch verwenden, wenn die native Bibliothek über eine Bibliothek verfügt, über die Java nicht verfügt.
Ich verwende selten native Methoden für die Leistung.
Es scheint, dass so etwas im frühen Java passiert ist, aber die Leistung hat sich aufgrund der Entwicklung von JVM nicht so sehr geändert.
Nachteile der nativen Methode
Die native Methode hat große Nachteile.
- Da die native Methode nicht sicher ist (ich denke, es handelt sich um eine Speicherverwaltungssicherheit, die bedeutet, dass BOF nicht auftritt) (Item50), ist die Anwendung, die die native Methode verwendet, ein Speicherbeschädigungsfehler, obwohl es sich um Java handelt. Es kann nicht gesagt werden, dass es Immunität gegen gibt.
- native Methoden sind plattformabhängig und daher nicht portierbar.
- Schwer zu debuggen
- Wenn Sie nicht gut darin sind, wird sich die Leistung verschlechtern. Dies liegt daran, dass der Garbage Collector möglicherweise nicht gut funktioniert und die Kosten für das Hin- und Herwechseln zwischen nativem Code hoch sind.
- Erfordert Klebercode, der nicht lesbar ist und eine redundante Beschreibung erfordert.
Mit anderen Worten, denken Sie sorgfältig nach und verwenden Sie die native Methode.