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