關(guā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()); ????} }
背景:
在一個類中有實例化本類對象的行為,我的理解如下:Java程序分為編譯與運行兩部分,在編譯的時候使用javac,這個時候把`Test.java`編譯成`Test.class`,在執(zhí)行到以上程序的`new Test()`時,JVM把該指令傳遞給CPU,CPU在堆空間才開辟一個具體的內(nèi)存空間用來存放一個Test對象。
問題:存放在對空間中的Test對象,其中也有一個本身自己的實例化的代碼,該代碼會不會執(zhí)行,造成類似于迭代效果的后果?
2017-08-27
不會,堆中的test對象的默認值是個空值
2017-08-27
什么叫類似迭代效果的后果?