您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Java中Native關鍵字怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
本機代碼的語法與普通函數定義相同,在函數開頭添加了“native”關鍵字。
例如:
Public class testing {public native String testMethod (String parameter);}
在這里,public
是一個訪問修飾符。它應該是公共的,以便其他文件可以使用它。字符串是函數的返回數據類型。它可以是整數、字符或布爾值,具體取決于關鍵字。傳遞給此函數的參數也是數據類型字符串。一切都應該保持在社會底層。
在函數聲明之后,我們通過創建對象和加載庫來調用這個函數。
public static void main(String[] args) { System.loadLibrary("testing"); testing testingnew = new testing(); String output = testingnew.stringMethod("NATIVE"); }
應首先加載上面定義的庫,并創建對象。在這個對象的幫助下,本機函數被調用。
應該有兩個文件。一個包含JAVA代碼,而另一個應該包含C/C++
遺留代碼。Java代碼將用于調用遺留代碼。此遺留代碼將與硬件交互并返回預期輸出。
當遺留代碼與硬件交互時,它將不會遵循JAVA制定的準則。此代碼將執行所需的處理,以獲得輸出并將結果傳遞給JNI。Java本機接口隨后將檢入其目錄,其中包含與本機代碼相關的所有規則(這在SDK中位于名為javah.exe的文件下)。JNI是作為Java工具包的一部分設計的。在此處理之后,JAVA將以JAVA語言本身發布輸出。當我們創建JAVA程序時,我們必須確保JAVA文件和遺留文件之間有一個變量/數據流鏈接,以便兩者之間有一個平滑的數據流。
下面給出了解釋如何使用本機關鍵字的步驟:
1. 編寫包含本機方法、已加載的共享庫的JAVA代碼,并使用“filename.JAVA”保存它。
2. 編譯JAVA代碼并將代碼轉換為字節碼。
3. 創建包含應調用的本機函數簽名的C/C++頭文件。
4. 編寫C/C++代碼有一個本機方法的實現。
5. 運行JAVA可執行文件以查看結果。
我們在Eclipse
中編寫代碼并運行代碼來創建一個庫,然后使用該庫來實現C代碼。
代碼:
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); } }
在將此代碼保存到java項目的新“類”中之后,我們必須設置一個運行環境來生成頭文件。
當我們運行這個程序時,應該生成一個庫。
輸出:
這里我們從java代碼創建了頭文件,它將本地代碼和java語言鏈接起來。
下面給出了一些優點:
它為JAVA提供了一個額外的優勢,可以與用其他語言編寫的代碼交互,并減少用JAVA編寫相同代碼的工作量,從而減少代碼冗余。
它提高了總體代碼性能。由于代碼是用其他語言編寫的,因此使用機器語言時可能比使用JAVA更快。然后我們可以使用JAVA程序調用此代碼。
使用這種方法,我們可以直接進行系統調用。降低外部干擾的概率,提高代碼執行速度。
您可以使用用JAVA編寫的任意驅動代碼動態調用預加載的庫(用JAVA以外的任何語言編寫),仍然可以用JAVA獲得響應。
它使JAVA能夠訪問硬件資源,而這些硬件資源只能由其他語言使用。
如果您已經為應用程序構建了一個依賴于平臺的代碼,并且其功能不受JAVA支持,那么我們可以使用本機代碼,并通過native關鍵字將本機代碼鏈接到JAVA。
native關鍵字的規則如下所示:
native
關鍵字將在方法名稱之前使用。
native方法聲明沒有正文,應該以分號結尾,因為這些方法不是在JAVA中定義的,而是在C/C++語言中出現的。
native方法不能聲明為抽象方法。
由于無法保證以前的舊代碼是否按照IEEE 754標準編寫(IEEE浮點算法標準是1985年由電氣和電子工程師協會制定的浮點算法技術標準),因此我們不能將這些原生方法聲明為嚴格FTP。
JAVA設計JAVA本機native
接口(JNI)規范來定義實現本機方法的規則和聲明,如JAVA和native代碼之間的數據類型轉換。
關于“Java中Native關鍵字怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。