日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

對(duì)象是什么

JAVA是一個(gè)面向?qū)ο蟮恼Z(yǔ)言,在Java中可以使用new關(guān)鍵字來產(chǎn)生一個(gè)對(duì)象,但這個(gè)對(duì)象到底是什么,應(yīng)該具有哪些屬性?

首先跟我們自己先想下,Java對(duì)象已經(jīng)有以下幾個(gè)屬性:

  1. 屬于哪個(gè)類
  2. 有哪些字段和類型
  3. 對(duì)象的值 ….

在HotSpot虛擬機(jī)中,真實(shí)的Java對(duì)象是分成三個(gè)部分:

  1. 對(duì)象頭
  2. 對(duì)象的值
  3. 對(duì)象的填充字節(jié) (在JVM中,要求對(duì)象占用內(nèi)存的大小應(yīng)該是8bit的倍數(shù),這個(gè)信息是用來補(bǔ)齊8bit的,無(wú)其他作用

對(duì)象頭

對(duì)象頭是Java中對(duì)象都具有的屬性,是jvm在編譯和運(yùn)行階段讀取的信息。對(duì)象頭包含三個(gè)部分:

  1. mark word
  2. 指針向類的指針
  3. 數(shù)組的長(zhǎng)度(只有數(shù)組的對(duì)象用到)

這3個(gè)中最復(fù)雜的是MarkWordMarkWord用于存儲(chǔ)對(duì)象自身的運(yùn)行時(shí)數(shù)據(jù), 如哈希碼(HashCode)、GC分代年齡、鎖狀態(tài)標(biāo)志、線程持有的鎖、偏向線程ID、偏向時(shí)間戳等等。在32bit的環(huán)境中,Java頭存儲(chǔ)的信息如下

Java對(duì)象頭

 

對(duì)象頭的應(yīng)用



偏向鎖

在HotSpot的虛擬機(jī)中,當(dāng)一個(gè)線程訪問同步塊并嘗試獲取鎖時(shí),會(huì)在對(duì)象頭和棧幀中的記錄里存儲(chǔ)鎖的偏向的線程ID,以后該線程進(jìn)入和退出同步塊的代碼時(shí)候,不需要再進(jìn)行加鎖 ,只需要檢測(cè)下MarkWord中的是否是當(dāng)前線程的偏向鎖。如果成功,則說明已經(jīng)獲得了鎖,如果檢測(cè)不成功,就再進(jìn)行加鎖。

輕量級(jí)鎖

線程在執(zhí)行同步塊之前,JVM會(huì)現(xiàn)在當(dāng)前的線程的棧幀中創(chuàng)建用于存儲(chǔ)鎖記錄的空間,并肩對(duì)象頭的MarkWord復(fù)制到鎖的記錄中,然后線程嘗試將對(duì)象頭MarkWord替換為指向鎖記錄的指針,如果不成功,說明鎖存在競(jìng)爭(zhēng),當(dāng)前線程開始進(jìn)行盲等來獲取鎖。

分享到:
標(biāo)簽:對(duì)象 Java
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定