Java 程式設計/關鍵詞/native
外觀
native 是一個 Java 關鍵字。它標記一個方法,該方法將在其他語言中實現,而不是在 Java 中。該方法宣告時沒有主體,也不能是 abstract。它與 JNI(Java 本地介面) 協同工作。
語法
[public|protected|private]nativemethod();
以前使用 native 方法來編寫效能關鍵的部分,但隨著 Java 的速度越來越快,這種情況現在不那麼常見了。目前,在以下情況下需要使用 native 方法:
- 您需要從 Java 呼叫用其他語言編寫的庫。
- 您需要訪問僅從其他語言(通常是 C)可訪問的系統或硬體資源。實際上,許多與實際計算機(例如磁碟和網路 I/O)互動的系統功能之所以能夠做到這一點,是因為它們呼叫了原生代碼。
要完成編寫 native 方法,您需要使用 javah 工具處理您的類,該工具將生成 C 標頭檔案程式碼。然後,您需要提供標頭檔案程式碼的實現,生成動態可載入庫(在 Linux 下為 .so,在 Windows 下為 .dll)並載入它(在最簡單的情況下使用 System.load(library_file_name))。如果只傳遞了像整數這樣的基本型別,程式碼完成非常簡單,但如果需要交換 C 程式碼中的字串或物件,就會變得更加複雜。通常情況下,所有內容都可以在 C 層完成,包括建立新物件和回撥 Java 中編寫的方法。
要呼叫其他語言(包括 C++)中的程式碼,您需要編寫一個從 C 到該語言的橋接器。這通常非常簡單,因為大多數語言都可以從 C 呼叫。