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); |
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP