java建立物件的過程

2021-09-25 04:01:18 字數 543 閱讀 8168

工作中每天都在建立物件(new 物件),可是在jvm中具體是怎麼實現的,對於這樣的問題,在面試的時候,會經常被問到,對於一位專業的開發怎麼能不知道呢?(有種想哭的衝動,竟然答不上來。。。),看來還要繼續加強學習,不管是簡單的基礎,還是流行的技術,都要時時學,時時複習,不多說,上面試精髓。

作為一名開發,都知道用new 物件的方式,來建立物件,可是對於在jvm中怎麼建立物件的,那就比較麻煩了;

1.用關鍵字new建立物件,表面看起來簡單無奇,可是在jvm中是相對比較複雜。

2.當虛擬機器(jvm)遇到new關鍵字時,會首先去方法區的常量池中去找是否存在類的引用符號

3.當在方法區的常量池中沒有發現類的引用符號,說明類還沒有載入;則先進行類的載入、解析和初始化。

4.類載入完成後,會在jvm中的堆中劃分出一塊記憶體

5.虛擬機器為分配到記憶體初始化為零值(不包括物件頭)

6.呼叫物件的方法,至此物件建立完成。

詳見:

java物件的建立過程

以一道例題開始 public class test static public test string str public static int print string str public static void main string args 執行結果是 1 j i 0 n 0 2 構造快...

物件的建立過程

jvm查詢類的路徑,定位到.class檔案 載入.class檔案,有關靜態初始化的所有動作都會被執行 靜態初始化只在物件首次載入的時候進行一次 當用new建立物件的時候,在堆上為物件分配足夠的空間 儲存空間將會被初始化,自動為物件的所有基本資料型別設定成預設值,引用被置為null 執行所有出現於字段...

物件的建立過程

直接上 public class sup public sup static package com.test.resources public class sub extends sup public sub static public class test 父類靜態 塊 在父類的無參構造上面 父...