久久久久综合给合狠狠狠,人人干人人模,大陆一级黄色毛片免费在线观看,亚洲人人视频,欧美在线观看一区二区,国产成人啪精品午夜在线观看,午夜免费体验

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 公文素材 > 范文素材 > JVM原理讀書筆記

JVM原理讀書筆記

網(wǎng)站:公文素材庫 | 時間:2020-07-13 08:28:06 | 移動端:JVM原理讀書筆記

  jvm是java virtual machine的英文縮寫,中文名:java虛擬機。它的作用是java程序(.class文件)和硬件系統(tǒng)的接口,也就是將.class文件字節(jié)碼解釋成CPU可調(diào)用計算機指令,以此保證了java程序平臺無關(guān)性。jvm它主要由類加載器(Class Loader)、執(zhí)行引擎(Excution Engine)及java數(shù)據(jù)區(qū)(Runtime Data Area)三部分組成,引用一張官方圖如下:

  一)類加載器(Class loader)主要作用是將.class文件加載到運行時數(shù)據(jù)區(qū)(Runtime Data Area)。

  Java類的加載分為兩種方式:

  1)隱式加載,所有通過new生成的類對象實例;

  2)顯式加載,Class.formName()動態(tài)加載;

  Java類的加載過程可以分為五步:

  1)載入,讀入.class文件,創(chuàng)建class對象;

  2)驗證,檢驗.class文件字節(jié)流里信息符合當前vm的基本要求(比如版本)、安全性(檢驗字節(jié)流不會損害vm)

  3)分配類對像的內(nèi)存,對基本類型數(shù)據(jù)分配Stack,并對final和staic類型的變量初始化0;

  4)解析類,包括類字段、類方法、類接口;

  5)初始化,執(zhí)行超類初始化,以及類里靜態(tài)變量、靜態(tài)方法、字段默認值初始化。

  二)運行數(shù)據(jù)區(qū)域,運行數(shù)據(jù)區(qū)域主要由PC計數(shù)器、方法區(qū)域、堆內(nèi)存、Java虛擬機棧和本地方法棧,引用如下圖:

  1)PC計數(shù)器是一塊較小內(nèi)存,屬于線程私有,可以看作是當前線程執(zhí)行的字節(jié)碼行號指示器;在java多線程中,每個線程都有一個PC,以便完成不同線程的上下文環(huán)境切換;

  2)Java虛擬機棧,和PC計數(shù)器一樣,屬于線程私用,記錄線程的局部變量、操作數(shù)棧;

  3)本地方法棧和Java虛擬機棧相似,Java虛擬機棧是為虛擬機方法服務,本地方法棧則是為本地方法服務;

  4)堆內(nèi)存是線程公共內(nèi)存,在jvm啟動時創(chuàng)建,用于存放所有實例對像和數(shù)組值;

  5)方法區(qū)域,也和堆內(nèi)存一樣,是所有線程公共區(qū)域,記錄了類的常量、成員變量、方法數(shù)據(jù)

  三)執(zhí)行引擎由JIT編譯器和垃圾回收器GC組成。垃圾回收器是一個優(yōu)先級較低的守護線程,該線程的運行優(yōu)先級會隨著內(nèi)存消耗不斷提高。垃圾回收器只會收集通過new出來對像,它采用的策略是根據(jù)對像最近被使用的時間作為依據(jù)對對像實例進行分代,對不同分代采用不同策略。JVM中對象引用分為四種類型:1)強引用(比如new一個實例),默認情況下,對像引用都采用強引用;2)軟引用,內(nèi)存不足時會被回收,多數(shù)情況在本地緩存時會用到軟引用;3)弱引用,一定會被回收;4)虛引用,一定會被回收。


來源:網(wǎng)絡整理 免責聲明:本文僅限學習分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。


JVM原理讀書筆記》由互聯(lián)網(wǎng)用戶整理提供,轉(zhuǎn)載分享請保留原作者信息,謝謝!
鏈接地址:http://www.weilaioem.com/gongwen/798750.html
相關(guān)文章