深入理解JVM學習筆記(十五、對象的創建)

下圖是JAVA虛擬機對象的創建過程:

現在我們就以下幾點說明對象的創建:

1、給對象分配內存

給對象分配內存有指針碰撞空閒列表兩種方式。具體描述如下圖所示。按時

2、線程安全性問題

        無論是指針碰撞還是空閒列表,在高併發情況下都有可能存在線程安全性問題。解決方案如下:

        1、加同步鎖。

                安全但是執行效率低。

        2、本地線程分配緩衝

                針對每個線程,給其在堆內存中單獨分配一塊區域,每個線程只能使用分配給自己的區域。我們稱之爲本地線程分配緩衝(Thread Local Aollocation Buffer )。

3、初始化對象

        初始化對象頭信息。

4、執行構造方法

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章