最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java 虛擬機中對象訪問詳解

 更新時間:2017年03月24日 11:55:32   投稿:lqh  
這篇文章主要介紹了java 虛擬機中對象訪問詳解的相關(guān)資料,需要的朋友可以參考下

java 虛擬機中對象訪問詳解

對象訪問會涉及到Java棧、Java堆、方法區(qū)這三個內(nèi)存區(qū)域。

如下面這句代碼:

Object objectRef = new Object(); 


       假設(shè)這句代碼出現(xiàn)在方法體中,"Object objectRef” 這部分將會反映到Java棧的本地變量中,作為一個reference類型數(shù)據(jù)出現(xiàn)。而“new Object()”這部分將會反映到Java堆中,形成一塊存儲Object類型所有實例數(shù)據(jù)值的結(jié)構(gòu)化內(nèi)存,根據(jù)具體類型以及虛擬機實現(xiàn)的對象內(nèi)存布局的不同,這塊內(nèi)存的長度是不固定。另外,在java堆中還必須包括能查找到此對象類型數(shù)據(jù)(如對象類型、父類、實現(xiàn)的接口、方法等)的地址信息,這些數(shù)據(jù)類型存儲在方法區(qū)中。

      reference類型在java虛擬機規(guī)范里面只規(guī)定了一個指向?qū)ο蟮囊玫刂?,并沒有定義這個引用應(yīng)該通過那種方式去定位,訪問到j(luò)ava堆中的對象位置,因此不同的虛擬機實現(xiàn)的訪問方式可能不同,主流的方式有兩種:使用句柄和直接指針。             

             句柄訪問方式:java堆中將劃分出一塊內(nèi)存來作為句柄池,reference中存儲的就是對象的句柄地址,而句柄中包含了對象實例數(shù)據(jù)和類型數(shù)據(jù)各自的具體地址信息。

指針訪問方式:reference變量中直接存儲的就是對象的地址,而java堆對象一部分存儲了對象實例數(shù)據(jù),另外一部分存儲了對象類型數(shù)據(jù)。

這兩種訪問對象的方式各有優(yōu)勢,使用句柄訪問方式最大好處就是reference中存儲的是穩(wěn)定的句柄地址,在對象移動時只需要改變句柄中的實例數(shù)據(jù)指針,而reference不需要改變。使用指針訪問方式最大好處就是速度快,它節(jié)省了一次指針定位的時間開銷,就虛擬機而言,它使用的是第二種方式(直接指針訪問)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

乐亭县| 文成县| 南丹县| 辉县市| 黎平县| 阿克陶县| 晋宁县| 通海县| 呼图壁县| 布拖县| 独山县| 缙云县| 海城市| 军事| 临沧市| 洪江市| 盖州市| 黄龙县| 台南市| 孟津县| 广宗县| 涪陵区| 南丰县| 疏附县| 临邑县| 三台县| 图们市| 凤城市| 林口县| 富顺县| 门源| 长乐市| 博湖县| 高雄县| 宿州市| 衢州市| 苗栗县| 本溪| 墨玉县| 玉门市| 循化|