欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Java中內(nèi)存區(qū)域與對象的概念和作用

這篇文章主要講解了“Java中內(nèi)存區(qū)域與對象的概念和作用”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Java中內(nèi)存區(qū)域與對象的概念和作用”吧!

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),雁峰企業(yè)網(wǎng)站建設(shè),雁峰品牌網(wǎng)站建設(shè),網(wǎng)站定制,雁峰網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,雁峰網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

1、Java虛擬機(jī)包含以下幾個運(yùn)行時數(shù)據(jù)區(qū)域:程序計數(shù)器、Java虛擬機(jī)棧、本地方法棧、Java堆、方法區(qū)。

2、程序計數(shù)器

1)在虛擬機(jī)的概念模型里,字節(jié)碼解釋器工作時就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支、循環(huán)、跳轉(zhuǎn)、異常處理、線程恢復(fù)等都需要依賴計數(shù)器來完成;

2)為了線程切換后能恢復(fù)到正確的執(zhí)行位置,每條線程都需要有一個獨(dú)立的程序計數(shù)器,各條線程之間計數(shù)器互不影響,獨(dú)立存儲,因此是線程獨(dú)立的;

3)如果正在執(zhí)行一個Java方法,這個計數(shù)器記錄的是正在執(zhí)行的虛擬機(jī)字節(jié)碼指令的地址;如果正在執(zhí)行的是Native方法,,這個計數(shù)器的值則為空;

4)此內(nèi)存區(qū)域是唯一一個在Java虛擬機(jī)規(guī)范中沒有規(guī)定任何OutOfMemoryError情況的區(qū)域。

3、Java虛擬機(jī)棧

1)線程私有,生命周期與線程相同;

2)描述的是Java方法執(zhí)行的內(nèi)存模型:每個方法執(zhí)行時都會創(chuàng)建一個棧幀用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈接、方法出口等信息,每個方法從調(diào)用直至執(zhí)行完成的過程,就對應(yīng)著一個棧幀在虛擬機(jī)棧中入棧到出棧的過程;

3)兩種異常:StackOverflowError和OutOfMemoryError。

4、本地方法棧

1)與虛擬機(jī)棧作用相似,區(qū)別是虛擬機(jī)棧為虛擬機(jī)執(zhí)行Java方法服務(wù),而本地方法棧為虛擬機(jī)使用到的Native方法服務(wù);

2)兩種異常:StackOverflowError和OutOfMemoryError。

5、Java堆

1)所有線程共享,存放對象實(shí)例和數(shù)組;

2)Java堆是垃圾收集器管理的主要區(qū)域;

3)Java堆可以處于物理上不連續(xù)的內(nèi)存空間中,只要邏輯上連續(xù)即可;

4)如果沒有內(nèi)存完成實(shí)例分配,并且堆也無法擴(kuò)展時,將拋出OutOfMemoryError異常。

6、方法區(qū)

1)所有線程共享,存放被虛擬機(jī)加載的類信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼等數(shù)據(jù);

2)JDK1.8仍然保留方法區(qū)的概念,只不過實(shí)現(xiàn)方式不同,取消永久代,方法存放于元空間(Metaspace),元空間仍然與堆不相連,但與堆共享物理內(nèi)存,邏輯上可認(rèn)為在堆中;

3)無法滿足內(nèi)存分配需求時,將拋出OutOfMemoryError異常。

7、使用new創(chuàng)建對象的過程

1)類加載檢查。首先檢查這個指令的參數(shù)是否能在常量池中定位到一個符號引用,并檢查這個符號引用代表的類是否已經(jīng)被加載、解析和初始化,如果沒有,則必須執(zhí)行類加載過程;

2)分配內(nèi)存。兩種分配方式:指針碰撞和空閑列表。指針碰撞要求Java堆內(nèi)存是絕對規(guī)整的,空閑列表允許Java堆不規(guī)整。采用那種方法取決于采用的垃圾收集器。

3)考慮并發(fā)問題。兩種方案:一種是CAS+失敗重試保證原子性,另一種是本地線程分配緩沖(TLAB),事先給每個線程分配一小塊內(nèi)存,分配完了才需要同步鎖定。

4)初始化零值。保證對象的實(shí)例字段在Java代碼中不賦初值就可以直接使用。

5)設(shè)置對象信息。例如對象是哪個類的實(shí)例、如何才能找到類的元數(shù)據(jù)信息、對象的哈希碼、對象的GC分代年齡等信息。這些信息存放在對象頭中。

6)執(zhí)行<init>方法。

8、對象的內(nèi)存布局

1)3塊區(qū)域:對象頭、實(shí)例數(shù)據(jù)、對齊填充;

2)對象頭:包含兩部分信息,一部分用于存儲自身的運(yùn)行時數(shù)據(jù),如哈希碼、GC分代年齡、鎖狀態(tài)標(biāo)志、線程持有的鎖、偏向鎖線程ID、偏向時間戳等,另一部分是類型指針,指向它的類元數(shù)據(jù)的指針。

3)實(shí)例數(shù)據(jù):是一個對象真正存儲的有效信息。

4)對齊填充:并不是必然存在的,由于HotpotVM的自動內(nèi)存管理系統(tǒng)要求對象起始地址必須是8字節(jié)的整數(shù)倍,因此沒有對齊的部分需要通過填充來補(bǔ)全。

9、對象的訪問定位:主流的訪問方式有使用句柄和直接指針兩種,HotSpt采用的第二種方式訪問對象。

感謝各位的閱讀,以上就是“Java中內(nèi)存區(qū)域與對象的概念和作用”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Java中內(nèi)存區(qū)域與對象的概念和作用這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站名稱:Java中內(nèi)存區(qū)域與對象的概念和作用
網(wǎng)站地址:http://aaarwkj.com/article0/gjcsio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制網(wǎng)站網(wǎng)站導(dǎo)航、Google、靜態(tài)網(wǎng)站、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)
亚洲综合偷拍欧美一区色| 精品人妻日韩中文字幕| 欧美日韩一级特黄大片| 精品人妻一区二区在线99| 18禁在线免费观看网站| 欧美精品亚洲二区中文乱码| 天天操天天干夜夜骑| 国产极白丝白浆日本国产| 日本av免费观看一区二区| 精品一区无遮挡免费网站| 日韩二区三区精品视频| av在线中文字幕剧情| 国产在线精品专区第一页| 欧美黄片视频在线免费看| 尤物天堂av一区二区| 白小白的视频在线观看| 免费观看黄片视频在线播放| 欧美精品福利一区二区| 中文字幕一区二区三天| 欧美日韩精品国产精品| 中文色婷婷国产精品视频| 中国亚洲黄色录像免费看| 亚洲久久精品中文字幕| 国产一区二区三区在线观看俏佳人 | 免费欧美大片在线观看高清| 日木av中文字幕女女同性| 日韩不卡的在线视频| 亚洲无综合素人在线观看| 亚洲国产欧美日韩国产| 欧美国产精品一区二区免费| 亚洲一区二区三区香蕉不卡| 97视频在线中文字幕| 精品人妻一区二区三区mp4| 亚洲桃色一区二区三区四区| 日韩国产欧美亚州精品| 刘亦菲毛片一区二区三区| 91麻豆国产福利在线| 九九九热免费在线观看| 国产视频传媒一区二区| 国产高清视频不卡在线| 亚洲一区二区天堂av|