JVM----本地方法棧
阿新 • • 發佈:2022-04-18
/** * 【執行時資料區-本地方法棧】 * <本地方法介面> * why * 有些層次用Java實現起來不容易(或對程式的效率很在意); * 與Java外環境互動: * 有時候Java應用需要與Java外的環境互動; * eg:與OS、硬體... * JVM依賴於底層系統的支援: * eg:OS... * what * native方法; * Java呼叫非Java的介面; * 由非Java語言實現,比如C; * 很多其他的程式語言也有這個機制,比如C++中,使用extern C 告知C++編譯器 去呼叫一個C的函式; * 目的 * 融合不同的程式語言為Java所用,初衷是融合C/C++程式; * 宣告 * 除abstract外,其他識別符號都可一起使用; * * <本地方法棧> * what * 管理native方法的呼叫; * 執行緒私有; * * 本地方法棧記憶體大小 * 固定大小 * 若申請的容量大於固定容量,丟擲StackOverflowError; * 動態擴充套件 * 若無法申請足夠的記憶體,丟擲OutOfMemoryError; * * 當某個執行緒呼叫一個native方法時,將進入一個全新的且不受JVM限制的世界; * * 並不是所有的JVM都支援本地方法; * */