您好,歡迎來到賦能網!

java培訓課程JVM的體系結構學習

賦能網 2023-05-11 73


java培訓課程:JVM的體系結構

1. java培訓課程中JVM 由哪些區(qū)域構成?

      由類加載器和運行時數(shù)據(jù)區(qū)構成;運行時數(shù)據(jù)區(qū)又分為線程私有和線程共享兩大區(qū)域,線程私有的包括程序計數(shù)器、虛擬機棧和本地方法棧,線程共享的包括堆和方法區(qū)。

2. 類加載器的作用是什么?

      加載 class 文件,生成類的結構信息,將其存放在方法區(qū)。

3. 類加載器有哪些種類以及它們之間的關系是什么?

      Bootstrap ClassLoader,加載 lib 下面的類;Extension ClassLoader,加載擴展類,即 jre/ext 下面的類;Application ClassLoader,加載用戶編寫的類;還可以繼承 ClassLoader 類自定義類加載器。Application ClassLoader 是 Extension ClassLoader 的子類,Extension ClassLoader 又是 Bootstrap ClassLoader 的子類。

4. 什么是雙親委派機制?

      簡單地說就是要加載類時先找自己的父類去進行加載。比如要加載 A.class,【關注尚硅谷,輕松學IT】首先 Application ClassLoader 會先找自己的父類,即 Extension ClassLoader,Extension ClassLoader 又會先找自己的父類,即 Bootstrap ClassLoader,它沒加載到,再告訴 Extension ClassLoader,它又沒加載到,才輪到 Application ClassLoader 去加載。這就是雙親委派機制,可以保證優(yōu)先加載 JDK 自己的類。

5. 類的加載過程是怎樣的?

      加載:將 class 文件加載進內存;

      驗證:驗證 class 文件的正確性;

      準備:給類中的靜態(tài)變量分配空間;

      解析:將 class 常量池中的符號引用替換成直接引用;

      初始化:對靜態(tài)變量和靜態(tài)代碼塊進行初始化。

6. 說說你對棧內存的認識?

      棧內存是線程私有的一塊區(qū)域,分為虛擬機棧和本地方法棧?;绢愋偷淖兞?、對象的引用變量和實例方法都是在棧中分配的。棧的內存地址是連續(xù)的,不存在垃圾回收。本地方法棧和虛擬機棧差不多,只不過本地方法棧是為本地方法服務的。

7. 程序計數(shù)器的作用是什么?

      記錄程序執(zhí)行的位置,程序調用別的方法、循環(huán)、遞歸的時候,www.atguigu.com下一次要回到哪兒執(zhí)行,就靠程序計數(shù)器記錄。

8. 方法區(qū)是物理上的劃分嗎?

      方法區(qū)是用來存儲類加載器生成的類的結構信息的,它是邏輯上的劃分,是一種規(guī)范,并不是具體的實現(xiàn)。jdk1.7 對方法區(qū)的實現(xiàn)叫做永久代,它存在于堆內存中;jdk1.8 對方法區(qū)的實現(xiàn)叫元空間,它共用物理內存。

9. 你對堆內存了解多少?

      堆是 JVM 中最大的一塊區(qū)域,存放數(shù)組以及對象。它又分為新生代、老年代,內存占比是 1:2 。新生代又分為伊甸園區(qū)、from 區(qū)和 to 區(qū),這三塊區(qū)域內存占比為 8:1:1 。對象在新生代的伊甸園區(qū)出生,經歷了若干次垃圾回收達到了年齡的對象就會存放到老年代。

      以上就是整理的java培訓課程內容,希望對你有所幫助。

  想了解更多相關資訊請關注Java培訓頻道-查看更多,了解相關專業(yè)課程信息您可在線咨詢也可免費申請試課。關注賦能網了解更多:4008-569-579

本文鏈接:

本文章“java培訓課程JVM的體系結構學習”已幫助 73 人

免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!

本文由賦能網 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: