日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

虚拟机中那些可以作为root对象_java虚拟机面试题及答案整理

發(fā)布時間:2023/12/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 虚拟机中那些可以作为root对象_java虚拟机面试题及答案整理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

下面要給大家?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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。