person p = new person(「zhangsan」,20);
該句話都做了什麼
1、因為new用到了person.class.所以 先找到person.class檔案並載入到記憶體中
2、執行改類中的static**塊,如果有的話,給person.class類進行初始化
3、在堆記憶體中開闢空間,分配記憶體位址。
4、在堆記憶體中建立物件的特有屬性,並進行預設初始化
5、對屬性進行顯示初始化
6、對物件進行構造**塊初始化。
7、對物件進行建構函式初始化
8、將記憶體位址賦給棧記憶體的p變數
class person
public
void
setname(string name)
public
void
speak()
public
static
void
showcountry()
public
static
void
method()
}class persondemo
}
(五)Java入門 內部類
內部類可以直接訪問外部類的內容,但是外部類要想訪問內部類,必須建立內部類的物件。內部類可以修飾為static,那裡面訪問外部類的變數必須是static的。1 若內部類不加static,則相當於外部類的成員。out.in a new out new in 2 若內部類加上static,外部類就不要建立...
Java記憶體分配
大多數情況,物件在新生代eden區中分配。當eden去沒有足夠記憶體空間分配時,進行minor gc。大物件是指連續占用記憶體空間的物件,比如很長的字串以及陣列。用乙個年齡計數器,每次minor gc後存活的物件移動到survior空間,並且計數器加1.年齡計數器大於一定值 預設是15 將晉公升到老...
嵌入式C語言入門 記憶體管理
堆和棧的區別 區 動態分配 void malloc size t size malloc 配置記憶體空間 表頭檔案 include 函式引數 無符號整型資料 函式說明 malloc 在動態儲存區分配size位元組的連續空間 返回值 成功返回指向空間起始位址的指標,失敗返回null void real...