虚拟机中那些可以作为root对象_java虚拟机面试题及答案整理
下面要給大家?guī)淼氖呛蚸ava虛擬機(jī)相關(guān)的面試題,那么常見的java虛擬機(jī)面試題都有哪些呢?下面就讓我們一起來了解一下和它有關(guān)的最新的面試題吧!
面試題:
1、JVM垃圾回收機(jī)制,什么時候觸發(fā)MinorGC等操作?
答案:在eden區(qū)內(nèi)存不能夠為一個新對象分配內(nèi)存的時候,就會觸發(fā)Minor GC。
Minor GC也被叫做是新生代GC,它主要指的就是發(fā)生在PSYoungGen的垃圾收集動作。
PSYoungGen主要包括了3個區(qū)域,分別是eden區(qū)、from(From Survivor)區(qū)和to(To Survivor)區(qū)。
2、虛擬機(jī)是怎樣執(zhí)行方法里面的字節(jié)碼指令的?
答案:解釋執(zhí)行(通過解釋器執(zhí)行) 、編譯執(zhí)行(通過即時編譯器產(chǎn)生本地代碼)。
3、講一下虛擬機(jī)和物理機(jī)的區(qū)別
答案:虛擬機(jī):執(zhí)行引擎是自己實現(xiàn)的,所以,能夠自行制定指令集和執(zhí)行引擎的結(jié)構(gòu)體系,除此之外,還可以執(zhí)行那些不被硬件直接支持的指令集格式;物理機(jī):執(zhí)行引擎是直接建立在處理器、硬件、指令集和操作系統(tǒng)層面的。
4、講一下java虛擬機(jī)調(diào)用字節(jié)碼指令有哪些?
答案:(1)invokestatic調(diào)用靜態(tài)方法(2)invokespecial調(diào)用實例構(gòu)造器方法、私有方法和父類方法(3)invokevirtual:調(diào)用所有的虛方法(4)invokeinterface調(diào)用接口方法。
5、JVM加載class文件的原理是什么?
答案:在JVM當(dāng)中,類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader是一個重要的Java運(yùn)行時系統(tǒng)組件,Java
ClassLoader負(fù)責(zé)在運(yùn)行的時候查找和裝入類文件的類。
java當(dāng)中的所有類,都要由類加載器裝載到JVM當(dāng)中才可以運(yùn)行。
類加載器自身也是一個類,類加載器的工作就是將class文件從硬盤讀取到內(nèi)存當(dāng)中。
在寫程序的時候,基本上不要關(guān)心類的加載。
類裝載方式,有以下的2種方式:
(1)隱式裝載
程序在運(yùn)行過程當(dāng)中,在碰到通過new等方式生成對象的時候,隱式調(diào)用類裝載器加載對應(yīng)的類到j(luò)vm中,
(2)顯式裝載
通過class.forname()等方法,顯式加載需要的類,隱式加載和顯式加載的區(qū)別:兩者本質(zhì)是一樣的。
java類的加載是動態(tài)的,它不會說一次性就把所有的類全部加載之后,再來運(yùn)行,而是保證程序運(yùn)行的基礎(chǔ)類完全加載到j(luò)vm當(dāng)中,至于其他的類,那么,就只會在需要的時候才加載。
6、jvm最大內(nèi)存限制是多少?
答案:
7、JVM內(nèi)存模型是什么?
答案:java內(nèi)存模型又可以叫做是JMM,JMM決定一個線程對共享變量的寫入何時對另一個線程可見。
從抽象的角度來看,JMM定義了線程和主內(nèi)存之間的抽象關(guān)系。
線程之間的共享變量存儲在主內(nèi)存當(dāng)中,每個線程都有一個私有的本地內(nèi)存,本地內(nèi)存中存儲了該線程以讀/寫共享變量的副本。
本地內(nèi)存是JMM的一個抽象概念,它不是真實存在的。
它涵蓋了緩存,寫緩沖區(qū),寄存器以及其他的硬件和編譯器優(yōu)化。
8、哪些對象可作為ROOT對象?
答案:虛擬機(jī)棧中的引用對象、方法區(qū)中類靜態(tài)屬性引用的對象、方法區(qū)中常量引用對象、本地方法棧中JNI引用對象。
9、JVM分區(qū)都有哪些?
答案:程序計數(shù)器(Program Count Register)、本地方法棧(Native Stack)、方法區(qū)(Methon
Area)、棧(Stack)、堆(Heap)。
10、講以下類的加載過程
答案:
具體的大家可以參考以下以下的文章-JVM類加載機(jī)制,什么是類的加載?
你還想了解更多的面試題嗎?請繼續(xù)關(guān)注奇Q工具網(wǎng)來了解吧,更多Java面試題可以分享給你。
推薦閱讀:
總結(jié)
以上是生活随笔為你收集整理的虚拟机中那些可以作为root对象_java虚拟机面试题及答案整理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 广告公司门口标语文案29句
- 下一篇: cmd长ping记录日志和时间_Gin