石家莊便宜網(wǎng)站制作,html底部友情鏈接代碼,網(wǎng)站icp備案時間,湛江seo網(wǎng)站推廣目錄 一、說明二、注意 一、說明 1. Java虛擬機棧用于管理Javaj法的調(diào)用,而本地方法棧用于管理本地方法的調(diào)用。 2. 本地方法棧,也是線程私有的。 3. 允許被實現(xiàn)成固定或者是可動態(tài)擴展的內(nèi)存大小。 (在內(nèi)存溢出方面是相同) 4. 如果線程請求分…
一、說明
- 1. Java虛擬機棧用于管理Javaj法的調(diào)用,而本地方法棧用于管理本地方法的調(diào)用。
- 2. 本地方法棧,也是線程私有的。
- 3. 允許被實現(xiàn)成固定或者是可動態(tài)擴展的內(nèi)存大小。 (在內(nèi)存溢出方面是相同)
- 4. 如果線程請求分配的棧容量超過本地方法棧允許的最大容量,Java虛擬機將會拋出一個 stackoverflowError 異常。
- 5. 如果本地方法棧可以動態(tài)擴展,并且在嘗試擴展的時候無法申請到足夠的內(nèi)存.或者在創(chuàng)建新的線程時沒有足夠的內(nèi)存去創(chuàng)建對應的本地方法棧,那么Java虛擬機將會拋出一個 OutOfMemoryError 異常。
- 6. 本地方法是使用c語言實現(xiàn)的
- 7. 它的具體做法是Native Method Stack中登記native方法,在Execution Engine 執(zhí)行時加載本地方法庫
二、注意
- 1. 當某個線程調(diào)用一個本地方法時,它就進入了一個全新的并且不再受虛擬機限制的世界。它和虛擬機擁有同樣的權(quán)限
- 2. 本地方法可以通過本地方法接口來訪問虛擬機內(nèi)部的運行時數(shù)據(jù)區(qū)
- 3. 它甚至可以直接使用本地處理器中的寄存器
- 4. 直接從本地內(nèi)存的堆中分配任意數(shù)量的內(nèi)存
- 5. 并不是所有的JVM都支持本地方法。因為Java虛擬機規(guī)范并沒有明確要求本地方法棧的使用語言、具體實現(xiàn)方式、數(shù)據(jù)結(jié)構(gòu)等。如果JVM產(chǎn)品不打算支持native方法,也可以無需實現(xiàn)本地方法棧。