在一個類中定義本身的實例對象時為什么要加static?
class?A{ ????int?i=0; ????A(){ ????????System.out.println("make?a?A"); ????} ????A?a=new?A(); } class?B{ ????int?i=0; ????B(){ ????????System.out.println("make?a?B"); ????} ????static?B?a=new?B(); } class?A創(chuàng)建實例時會發(fā)生棧溢出,原因是循環(huán)定義,而為什么class?B實例化時,不會報錯
2015-01-15
static 讓B實現(xiàn)了單例,也就是說在虛擬機中實際上只是實例化兩次。
而A是一個相當于無限循環(huán)的實例化