天天看點

java代碼塊

靜态代碼塊:就是一個有靜态關鍵字标示的一個代碼塊區域。定義在類中。

作用:可以完成類的初始化。靜态代碼塊随着類的加載而執行,而且隻執行一次(new 多個對象就隻執行一次)。如果和主函數在同一類中,優先于主函數執行。

靜态代碼塊、構造代碼塊、構造函數同時存在時的執行順序:靜态代碼塊 -->構造代碼塊 --> 構造函數;

Person p = new Person();

建立一個對象都在記憶體中做了什麼事情?

1:先将硬碟上指定位置的Person.class檔案加載進記憶體。

2:執行main方法時,在棧記憶體中開辟了main方法的空間(壓棧-進棧),然後在main方法的棧區配置設定了一個變量p。

3:在堆記憶體中開辟一個實體空間,配置設定了一個記憶體首位址值。new

4:在該實體空間中進行屬性的空間配置設定,并進行了預設初始化。

5:對空間中的屬性進行顯示初始化。

6:進行實體的構造代碼塊初始化。

7:調用該實體對應的構造函數,進行構造函數初始化。()

8:将首位址指派給p ,p變量就引用了該實體。(指向了該對象)

this:代表對象。就是所在函數所屬對象的引用。

this到底代表什麼呢?哪個對象調用了this所在的函數,this就代表哪個對象,就是哪個對象的引用。

2,成員變量存在于堆記憶體中。

靜态變量存在于方法區中。

3,成員變量随着對象建立而存在。随着對象被回收而消失。

靜态變量随着類的加載而存在。随着類的消失而消失。

靜态代碼塊、構造代碼塊、構造函數同時存在時的執行順序:靜态代碼塊 à 構造代碼塊 à 構造函數;

4.eclipse自動生成類的幫助文檔