關(guān)于在本類定義中實(shí)例化本類對(duì)象的問(wèn)題
代碼:
package?com.antique;
public?class?Test?{
????private?String?s?=?"123";
????public?String?getS()?{
????????return?s;
????}
????public?static?void?main(String[]?args){
????????System.out.println(new?Test().getS());
????}
}背景:
在一個(gè)類中有實(shí)例化本類對(duì)象的行為,我的理解如下:Java程序分為編譯與運(yùn)行兩部分,在編譯的時(shí)候使用javac,這個(gè)時(shí)候把`Test.java`編譯成`Test.class`,在執(zhí)行到以上程序的`new Test()`時(shí),JVM把該指令傳遞給CPU,CPU在堆空間才開(kāi)辟一個(gè)具體的內(nèi)存空間用來(lái)存放一個(gè)Test對(duì)象。
問(wèn)題:存放在對(duì)空間中的Test對(duì)象,其中也有一個(gè)本身自己的實(shí)例化的代碼,該代碼會(huì)不會(huì)執(zhí)行,造成類似于迭代效果的后果?
2017-08-27
不會(huì),堆中的test對(duì)象的默認(rèn)值是個(gè)空值
2017-08-27
什么叫類似迭代效果的后果?