亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JVM架構(gòu)哪些事

ghnor / 3351人閱讀

摘要:線程守護(hù)線程通常是虛擬機(jī)自己使用,比如線程,但是程序可以將自己的線程設(shè)置為守護(hù)線程,但是必須在方法之前調(diào)用用戶線程即方法執(zhí)行的線程當(dāng)程序中所有的非守護(hù)線程即用戶線程都結(jié)束時(shí),虛擬機(jī)實(shí)例將自動(dòng)退出。

JAVA虛擬機(jī)

每一個(gè)java程序都是運(yùn)行在某個(gè)具體的java虛擬機(jī)實(shí)現(xiàn)的實(shí)例上,一個(gè)java虛擬機(jī)負(fù)責(zé)運(yùn)行一個(gè)java程序,當(dāng)啟動(dòng)一個(gè)java程序的時(shí)候,一個(gè)虛擬機(jī)就誕生了,當(dāng)該程序關(guān)閉時(shí),這個(gè)虛擬機(jī)實(shí)例也就隨之消亡。

1 JVM線程

守護(hù)線程;通常是虛擬機(jī)自己使用,比如GC線程,但是java程序可以將自己的線程設(shè)置為守護(hù)線程,但是必須在start()方法之前調(diào)用

用戶線程:即main方法執(zhí)行的線程

當(dāng)程序中所有的非守護(hù)線程(即用戶線程)都結(jié)束時(shí),虛擬機(jī)實(shí)例將自動(dòng)退出。因而,守護(hù)線程不適合做IO操作,因?yàn)槭刈o(hù)線程是在所有的非守護(hù)線程推出后結(jié)束,這樣并不能代表守護(hù)線程是否完成了相應(yīng)的操作,如果非守護(hù)線程退出后,還有大量的數(shù)據(jù)沒(méi)有寫(xiě),將會(huì)引發(fā)數(shù)據(jù)丟失問(wèn)題

2 JVM結(jié)構(gòu)

-類裝載子系統(tǒng)

每一個(gè)JVM都有一個(gè)類裝載系統(tǒng),它會(huì)跟著給定的全限定名來(lái)裝載類型、class文件等

執(zhí)行引擎

每一個(gè)JVM都有一個(gè)執(zhí)行引擎,他負(fù)責(zé)執(zhí)行哪些包含在裝載類中的指令

運(yùn)行時(shí)數(shù)據(jù)區(qū)

當(dāng)JVM運(yùn)行一個(gè)程序的時(shí)候,它需要內(nèi)存來(lái)進(jìn)行存儲(chǔ)很多的東西,比如計(jì)算時(shí)的中間變量,程序創(chuàng)建的對(duì)象,返回值等等,運(yùn)行時(shí)數(shù)據(jù)區(qū)就類似于內(nèi)存,存存這些東西,每個(gè)運(yùn)行區(qū)包含方法區(qū),堆,JAVA棧,PC寄存器,本地方法棧等
(1)當(dāng)虛擬機(jī)裝載一個(gè)class文件時(shí),它會(huì)從class文件包含的二進(jìn)制數(shù)據(jù)中解析類型信息,然后將這些信息放在方法區(qū)中

(2)當(dāng)程序運(yùn)行的時(shí)候,虛擬機(jī)就會(huì)把所有線程在運(yùn)行時(shí)創(chuàng)建的對(duì)象都放在堆中

(3)如果線程正在執(zhí)行的是一個(gè)JAVA方法,那么寄存器的值(程序計(jì)數(shù)器)總是指向下一條將被執(zhí)行的指令

(4)JAVA棧則總是存儲(chǔ)該線程中JAVA方法調(diào)用的轉(zhuǎn)臺(tái)--包括它的局部變量、被調(diào)用時(shí)傳進(jìn)來(lái)的參數(shù)、返回值、以及中間結(jié)果等等。JAVA棧是由很多的棧幀或這說(shuō)是幀等組成,一個(gè)棧幀包含一個(gè)方法調(diào)用狀態(tài),當(dāng)現(xiàn)場(chǎng)調(diào)用一個(gè)JAVA方法的時(shí)候,虛擬機(jī)壓入一個(gè)方法到該線程的JAVA棧中,當(dāng)方法返回時(shí),這個(gè)棧幀就會(huì)從JAVA棧中彈出并拋棄

3 類加載器

JAVA類加載器是JAVA運(yùn)行時(shí)環(huán)境的一部分,負(fù)責(zé)動(dòng)態(tài)的將JAVA類加載到JAVA虛擬機(jī)的內(nèi)存空間中,類通常是按需加載,即第一次使用該類時(shí)才加載,類裝載系統(tǒng)除了要定位和導(dǎo)入二進(jìn)制class文件外,還必須驗(yàn)證被導(dǎo)入類的數(shù)據(jù)的正確性,為變量分配初始化內(nèi)存,以及幫助解析符號(hào)引用等,這些動(dòng)作按照以下循序執(zhí)行

(1)裝載-查找并裝載二進(jìn)制數(shù)據(jù)

(2)鏈接-執(zhí)行驗(yàn)證、準(zhǔn)備等

(3)初始化

4 啟動(dòng)類裝載器

由原生代碼c++編寫(xiě),它負(fù)責(zé)加載核心JAVA庫(kù)

5 用戶自定義類裝載器

繼承classloard類,用戶自定義的類裝載器

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69660.html

相關(guān)文章

  • 三年百度,五年阿里,阿里p8架構(gòu)師淺談:我是如何順利進(jìn)入BAT

    摘要:三年百度,五年阿里,阿里架構(gòu)師淺談我是如何順利進(jìn)入前些天在我群里認(rèn)識(shí)了以為挺有意思的老哥,他也是工作年多技術(shù)和面試都不差,最近也是在找工作,是從京城來(lái)魔都的,也和他撈了不少。 說(shuō)來(lái)慚愧,也不怕你們笑話。做開(kāi)發(fā)8年多,到目前還是一名不折不扣的掃地僧。年前的辭職,到現(xiàn)在還在家靜養(yǎng)中。其實(shí)也沒(méi)什么,就是回家總結(jié)一下自己這些年來(lái)在外工作與面試等做一個(gè)簡(jiǎn)單的總結(jié)與反思。做一下自己后面一個(gè)人生規(guī)劃...

    seanlook 評(píng)論0 收藏0
  • 后端知識(shí)拓展 - 收藏集 - 掘金

    摘要:阻塞,非阻塞首先,阻塞這個(gè)詞來(lái)自操作系統(tǒng)的線程進(jìn)程的狀態(tài)模型網(wǎng)絡(luò)爬蟲(chóng)基本原理一后端掘金網(wǎng)絡(luò)爬蟲(chóng)是捜索引擎抓取系統(tǒng)的重要組成部分。每門主要編程語(yǔ)言現(xiàn)未來(lái)已到后端掘金使用和在相同環(huán)境各加載多張小圖片,性能相差一倍。 2016 年度小結(jié)(服務(wù)器端方向)| 掘金技術(shù)征文 - 后端 - 掘金今年年初我花了三個(gè)月的業(yè)余時(shí)間用 Laravel 開(kāi)發(fā)了一個(gè)項(xiàng)目,在此之前,除了去年換工作準(zhǔn)備面試時(shí),我并...

    CoderBear 評(píng)論0 收藏0
  • 后端知識(shí)拓展 - 收藏集 - 掘金

    摘要:阻塞,非阻塞首先,阻塞這個(gè)詞來(lái)自操作系統(tǒng)的線程進(jìn)程的狀態(tài)模型網(wǎng)絡(luò)爬蟲(chóng)基本原理一后端掘金網(wǎng)絡(luò)爬蟲(chóng)是捜索引擎抓取系統(tǒng)的重要組成部分。每門主要編程語(yǔ)言現(xiàn)未來(lái)已到后端掘金使用和在相同環(huán)境各加載多張小圖片,性能相差一倍。 2016 年度小結(jié)(服務(wù)器端方向)| 掘金技術(shù)征文 - 后端 - 掘金今年年初我花了三個(gè)月的業(yè)余時(shí)間用 Laravel 開(kāi)發(fā)了一個(gè)項(xiàng)目,在此之前,除了去年換工作準(zhǔn)備面試時(shí),我并...

    Carl 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<