? ? ? ? ? ?計(jì)算機(jī)兩大主要功能,計(jì)算和存儲(chǔ)预吆。cpu負(fù)責(zé)計(jì)算龙填,存儲(chǔ)器負(fù)責(zé)存儲(chǔ)功能,存儲(chǔ)器主要有緩存拐叉,主存(內(nèi)存)和硬盤岩遗。Cpu只對(duì)緩存中的數(shù)據(jù)進(jìn)行操作。緩存緩存數(shù)據(jù)來自內(nèi)存凤瘦,內(nèi)存的數(shù)據(jù)來自硬盤或網(wǎng)絡(luò)宿礁。硬盤的數(shù)據(jù)是持久化的,重新開機(jī)依然可以訪問蔬芥。緩存或內(nèi)存中的數(shù)據(jù)梆靖,遇到程序退出或關(guān)機(jī)就會(huì)丟失控汉。word編輯器中的數(shù)據(jù),在編輯時(shí)都是保存在內(nèi)存中返吻,沒保存情況下遇到程序退出或關(guān)機(jī)就會(huì)丟失姑子,如果點(diǎn)擊保存按鈕,它就會(huì)持久化到硬盤上面测僵,關(guān)機(jī)再啟依然可以訪問街佑。
? ? ? ? ? ?緩存就是我們?cè)谫徺I計(jì)算機(jī)的時(shí)候,上面寫的一級(jí)緩存捍靠,二級(jí)緩存沐旨,三級(jí)緩存,這三個(gè)緩存類型統(tǒng)稱為緩存榨婆。主存就是通常所說的內(nèi)存條磁携,內(nèi)存條的大小就是主存的大小。
????????jvm的內(nèi)存結(jié)構(gòu)可以劃分為纲辽,程序計(jì)數(shù)器颜武,本地方法棧,虛擬機(jī)棧拖吼,這三個(gè)部分他是屬于線程私有的內(nèi)存空間鳞上,所以它是放在緩存。方法區(qū)(常量池)和堆屬于共享內(nèi)存區(qū)域吊档,對(duì)應(yīng)主存篙议。
????????在一個(gè)確定的時(shí)刻,一個(gè)處理器怠硼,只會(huì)處理一條線程中的指令鬼贱,這個(gè)線程中的指令就存放在程序計(jì)數(shù)器里面,它存放的是當(dāng)前線程所執(zhí)行的字節(jié)碼的行號(hào)
????????每一個(gè)方法都會(huì)包含他要處理的一些數(shù)據(jù)香璃,基本數(shù)據(jù)類型这难,和對(duì)象的引用,以及方法的結(jié)構(gòu)葡秒,就存在java虛擬機(jī)棧中姻乓,他是不需要跟其他線程所共享的,所以它是線程獨(dú)有的眯牧。此處所說的方法都是程序里面用java語言所寫的方法忌警。對(duì)于本地方法(native方法)牵署,這些描述信息將存在本地方法棧中午乓。
????????類相關(guān)信息鳞疲,包括類的版本,字段版确,方法接口等信息都存在運(yùn)行常量池扣囊,常量池屬于方法區(qū)的一塊空間乎折。當(dāng)使用ClassLoader的的時(shí)候產(chǎn)生的類信息就存放在常量池中,比如AOP可能導(dǎo)致常量池內(nèi)存溢出如暖,原因是其底層依賴的字節(jié)碼編譯技術(shù)產(chǎn)生過多類信息
共享內(nèi)存結(jié)構(gòu):
????????下圖是堆內(nèi)存的結(jié)構(gòu)圖笆檀,堆內(nèi)存劃分為四個(gè)區(qū)域忌堂,Eden,S0,S1,Old Memory盒至。Perm常量池屬于方法區(qū)。
????????當(dāng)一個(gè)普通對(duì)象被創(chuàng)建士修,Eden區(qū)分配空間來存放這個(gè)對(duì)象枷遂,當(dāng)觸發(fā)垃圾回收的時(shí)候,Eden區(qū)存活下來的對(duì)象移到S0棋嘲,清除沒被引用的對(duì)象酒唉,Eden內(nèi)存被釋放。新的對(duì)象在被創(chuàng)建的時(shí)候沸移,依然會(huì)放到Eden區(qū)痪伦,觸發(fā)Minor GC的時(shí)候,Eden區(qū)存活下來的對(duì)象移動(dòng)到還沒有被使用的S1區(qū)雹锣,釋放Eden网沾。Major GC觸發(fā)的時(shí)候,S0區(qū)存活的對(duì)象移到S1蕊爵,釋放S0辉哥。下一次Minor GC被觸發(fā)的時(shí)候,Eden區(qū)存活的對(duì)象就被放到S0區(qū)攒射,清空Eden重新接收新對(duì)象醋旦。
????????Major GC被觸發(fā)時(shí)候,S1區(qū)存活下來的對(duì)象又放在S0區(qū)会放。當(dāng)再一次觸發(fā)Major GC的時(shí)候饲齐,S0存活的對(duì)象又被放到S1區(qū),S0和S1來回的移動(dòng)存活對(duì)象咧最,每移動(dòng)一次捂人,幸存對(duì)象的存活次數(shù)增加一。在年輕代中經(jīng)歷了N次(可配置)垃圾回收后仍然存活的對(duì)象窗市,就會(huì)被復(fù)制到年老代中