1. 程式人生 > >簡單理解下java關鍵字native

簡單理解下java關鍵字native

java 不具備操作底層系統的內力,但可以通過JNI去呼叫可以操作底層系統的語言,如:C/C++。用native標記的方法表示此方法使用的本地的外部語言。需要呼叫本地的支援操作底層語言的函式。之所以我們很少看見native關鍵字是因為我們一直都在面向java開發。其實一些特殊的業務場景需要我們寫底層語言指令碼時,我們就會用到此關鍵字。看下我們常見的程式碼便可更好的理解。

如:呼叫當前執行緒的方法

public class Thread implements Runnable {
    public static native Thread currentThread();
}

 

下面摘錄一段網友的解釋,加深理解。

JNI

理解此關鍵字之前需要了解下JNI(即:Java Native Interface),我們都知道java是根據C/C++開發出的新語言,java在C/C++基礎之上做了很多優化,更利於程式設計師使用,並快速開發程式,但語言沒有完美的,其中java的執行速度要比傳統的C++慢上許多之外,還有Java無法直接操作到底層作業系統,為此 Java提供了JNI來實現對於底層的訪問。JNI,Java Native Interface,它是Java的SDK一部分,JNI允許Java程式碼使用以其他語言編寫的程式碼和程式碼庫,本地程式中的函式也可以呼叫Java層的函 數,即JNI實現了Java和原生代碼間的雙向互動。

Native

JDK開放給使用者的原始碼中隨處可見Native方法,被Native關鍵字宣告的方法說明該方法不是以Java語言實現的,而是以本地語言實現的,Java可以直接拿來用。這裡有一個概念,就是本地語言,本地語言這四個字,個人理解應該就是可以和作業系統直接互動的語言。

轉自(https://www.cnblogs.com/szlbm/p/5504603.html

參考文章:

https://www.cnblogs.com/Alandre/p/4456719.html

https://blog.csdn.net/createchance/article/details/53783490