91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Native關鍵字怎么用

發布時間:2021-12-27 14:41:14 來源:億速云 閱讀:222 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Java中Native關鍵字怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一、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");
}

應首先加載上面定義的庫,并創建對象。在這個對象的幫助下,本機函數被調用。

二、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中Native關鍵字怎么用

當我們運行這個程序時,應該生成一個庫。

輸出:

這里我們從java代碼創建了頭文件,它將本地代碼和java語言鏈接起來。

Java中Native關鍵字怎么用

四、Java中Native關鍵字的優勢

下面給出了一些優點:

  • 它為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關鍵字怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五台县| 乐昌市| 陇川县| 盐亭县| 鹤山市| 垦利县| 赤城县| 宣化县| 沿河| 龙州县| 龙游县| 搜索| 古蔺县| 大名县| 汕尾市| 固原市| 大城县| 萍乡市| 封开县| 从江县| 石泉县| 武川县| 依兰县| 岳西县| 杭锦旗| 密云县| 北辰区| 治多县| 兴仁县| 武穴市| 肥东县| 仙游县| 万年县| 集安市| 屏东县| 周至县| 大田县| 宜川县| 绥棱县| 叙永县| 深泽县|