您好,登錄后才能下訂單哦!
本篇內容介紹了“什么是本地方法棧”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Java虛擬機棧于管理Java方法的調用,而本地方法棧用于管理本地方法的調用。
本地方法棧,也是線程私有的。
允許被實現成固定或者是可動態擴展的內存大小。(在內存溢出方面是相同的)
如果線程請求分配的棧容量超過本地方法棧允許的最大容量,Java虛擬機將會拋出一個stackoverflowError 異常。
如果本地方法棧可以動態擴展,并且在嘗試擴展的時候無法申請到足夠的內存,或者在創建新的線程時沒有足夠的內存去創建對應的本地方法棧,那么Java虛擬機將會拋出一個outofMemoryError異常。
本地方法是使用C語言實現的。
它的具體做法是Native Method Stack中登記native方法,在Execution Engine 執行時加載本地方法庫。
當某個線程調用一個本地方法時,它就進入了一個全新的并且不再受虛擬機限制的世界。它和虛擬機擁有同樣的權限。
本地方法可以通過本地方法接口來訪問虛擬機內部的運行時數據區。
它甚至可以直接使用本地處理器中的寄存器
直接從本地內存的堆中分配任意數量的內存。
并不是所有的JVM都支持本地方法。因為Java虛擬機規范并沒有明確要求本地方法棧的使用語言、具體實現方式、數據結構等。如果JVM產品不打算支持native方法,也可以無需實現本地方法棧。
在Hotspot JVM中,直接將本地方法棧和虛擬機棧合二為一。
“什么是本地方法棧”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。