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); |