Java方法和原生方法有什麼區別?


本文將幫助您瞭解Java方法和原生方法之間的所有區別。

函式/方法

程式模組(程式的一部分),用於在程式的不同例項中同時執行特定任務,被稱為方法或函式。它可以被視為一個黑盒,能夠返回輸出(根據內部程式碼的執行獲得)。同樣,Java類中所有可用的方法都充當黑盒。向方法提供值(引數)後,它會處理其中可用的程式碼並返回輸出。

使用方法的優點

  • 它向用戶隱藏低級別的內部程式碼細節。可以在不公開內部細節的情況下允許外部使用方法。

  • 它根據需要重用類程式碼段,只需使用方法名稱。

  • 它將複雜的計算任務分解成一系列較小的方法,從而使問題解決更容易、特定於物件且模組化。

定義方法

定義方法的一般形式如下所示:

<Access specifier> <Return Type> <Method Name> (Parameter List){
   Statement
   ______________
   ______________
   return (value);
}

示例

public int Addition(int a, int b){
   int sum = 0;
   sum + = a + b;
   return (sum);
}

這裡public是訪問說明符,int是返回型別,Addition是方法名稱,int a和int b是引數。

原生方法

原生方法是一種Java方法,它以Java以外的語言啟動。這可以訪問Java中直接不可用的系統特定函式和API。

使用原生方法會導致應用程式的可移植性受到限制,因為它涉及系統特定的程式碼。它們可以是新的程式碼語句,也可以是呼叫現有原生程式碼的程式碼語句。

執行原生方法時,需要與Java虛擬機器進行互操作。這是透過Java原生介面(JNI)完成的,它以平臺無關的方式促進了這種互操作性。

JNI是一組介面,允許原生方法透過多種方式與JVM互操作。例如,JNI可以包含建立物件、呼叫方法、獲取欄位、設定欄位、運算元組、操作字串和執行程序異常的介面。

原生方法的用途

如果Java程式語言不足以滿足程式設計需求,則應使用原生方法。這是因為使用它們會導致應用程式的可移植性受到限制,因為它涉及系統特定的程式碼。下面是一些應該使用原生方法的情況:

  • 訪問使用Java程式語言無法訪問的系統函式。

  • 實現從原生實現中受益匪淺的效能特定方法。

  • 建立現有API的介面,允許Java呼叫其他API。

建立原生方法的步驟

步驟1 - 編寫Java程式碼並編譯。

步驟2 - 建立C標頭檔案(.h)。

步驟3 - 使用工具Java - HEdge建立C存根檔案。

步驟4 - 編寫C程式碼。

步驟5 - 建立共享程式碼庫或DLL。

步驟6 - 執行應用程式。

Java方法和原生方法的區別

序號 Java方法 原生方法
1 它專門用Java語言編寫。 它用Java以外的語言編寫,例如C。
2 沒有單獨的關鍵字來宣告方法。 要宣告原生方法,必須使用“native”關鍵字。
3 無法訪問系統特定函式。 用於訪問系統特定函式。
4 需要Java虛擬機器執行。 需要Java原生介面執行。
5 不會限制應用程式的可移植性。 限制應用程式的可移植性。
6 示例 - public int getValue (int n) { } 示例 - public native int getValue (int n);

更新於:2022年9月5日

844 次檢視

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告