【面试总结】2021Java春招面试经历
三、堆空間
基本描述
JVM啟動時創(chuàng)建堆區(qū),是內(nèi)存管理的核心區(qū),通常情況下也是最大的內(nèi)存空間,是被所有線程共享的,幾乎所有的對象實例都要在堆中分配內(nèi)存,所以這里也是垃圾回收的重點空間。
堆棧關(guān)系
棧是JVM運行時的單位,堆是存儲單位,當棧中方法結(jié)束,相關(guān)對象失去所有引用后,不會馬上被移除堆空間,要等到垃圾收集器運行的時候。
四、虛擬機棧
虛擬機棧(Java棧)在每個線程創(chuàng)建時都會生成一個虛擬機棧,棧的內(nèi)部是一個個棧幀單元,對應Java方法的調(diào)用,其生命周期和線程周期保持一致。用來存儲方法的局部遍歷,部分執(zhí)行結(jié)果,方法的調(diào)用和返回。
棧幀是方法執(zhí)行的數(shù)據(jù)集,維持執(zhí)行過程中的各種數(shù)據(jù)信息,執(zhí)行的方法依次入棧,棧頂存放當前要執(zhí)行的方法,執(zhí)行結(jié)束后出棧,對于棧沒有垃圾回收問題。
五、程序計數(shù)器
基本描述
JVM中程序計數(shù)寄存器用來存儲下一條將要執(zhí)行指令的地址,執(zhí)行引擎獲取到指令后進行執(zhí)行,是線程私有的。它可以看作是當前線程所執(zhí)行的字節(jié)碼的行號指示器。
前后關(guān)系
線程在獲取CPU的時間段內(nèi)執(zhí)行代碼,但是線程隨時可能沒有執(zhí)行完就被掛起,等到線程A再次獲取CPU執(zhí)行時,CPU 得知道執(zhí)行到線程A的哪一個指令,程序計數(shù)器會存儲該動作。
六、本地方法棧
本地方法棧與虛擬機棧所起到的作用是類似的,虛擬機棧為虛擬機執(zhí)行Java方法,本地方法棧管理虛擬機使用到的 本地方法,在虛擬機規(guī)范中對本地方法棧中方法使用的語言、使用方式與數(shù)據(jù)結(jié)構(gòu)并沒有強制規(guī)定,因此具體的虛擬機可以自由實現(xiàn)它。HotSpot虛擬機直接就把本地方法棧和虛擬機棧合二為一。
最后
整理的這些資料希望對Java開發(fā)的朋友們有所參考以及少走彎路,本文的重點是你有沒有收獲與成長,其余的都不重要,希望讀者們能謹記這一點。
再免費分享一波我的Java專題面試真題+視頻學習詳解+Java進階學習書籍
(https://docs.qq.com/doc/DSmxTbFJ1cmN1R2dB)**
其實面試這一塊早在第一個說的25大面試專題就全都有的。以上提及的這些全部的面試+學習的各種筆記資料,我這差不多來回搞了三個多月,收集整理真的很不容易,其中還有很多自己的一些知識總結(jié)。正是因為很麻煩,所以對以上這些學習復習資料感興趣,
總結(jié)
以上是生活随笔為你收集整理的【面试总结】2021Java春招面试经历的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 少精症治不好
- 下一篇: 一文搞懂JVM架构:入职3个月的Java