JVM運行時數據區--本地方法棧


本地方法棧

1.Java虛擬機棧用於管理Java方法的調用,而本地方法棧用於管理本地方法(一般非Java實現的方法)的調用

2.本地方法棧,也是線程私有的。

3.允許被實現成固定或者是可動態拓展的內存大小。(和Java虛擬機棧在內存溢出方面情況是相同的

如果線程請求分配的棧容量超過本地方法棧允許的最大容量,Java虛擬機將會拋出一個StackOverFlowError異常。

如果本地方法棧可以動態擴展,並且在嘗試擴展的時候無法申請到足夠的內存,或者在創建新的線程時沒有足夠的內存去創建對應的本地方法棧,那么java虛擬機將會拋出一個OutOfMemoryError異常。

4.本地方法是使用C語言實現的

5.它的具體做法是Native Method Stack中登記native方法,在Execution Engine執行時加載本地方法庫。

6.當某個線程調用一個本地方法時,它就進入了一個全新的並且不再受虛擬機限制的世界。它和虛擬機擁有同樣的權限

本地方法可以通過本地方法接口來 訪問虛擬機內部的運行時數據區

它甚至可以直接使用本地處理器中的寄存器

直接從本地內存的堆中分配任意數量的內存

7.並不是所有的JVM都支持本地方法。因為Java虛擬機規范並沒有明確要求本地方法棧的使用語言、具體實現方式、數據結構等。如果JVM產品不打算支持native方法,也可以無需實現本地方法棧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM