Re: [問題] 請教物件生成的流程

看板java作者 (小安)時間19年前 (2006/03/05 12:45), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串10/12 (看更多)
※ 引述《Oreilly (怕寂寞卻愛自由)》之銘言: : MyClass my=new MyClass(); : 這行code做了以下事情 : step1.宣告 MyClass型態的變數my : step2.在heap上建立MyClass 物件 : step3.執行MyClass的建構子 : step4.把記憶體的位置 asign reference給變數my : ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ : 可是這篇文章 : http://www-128.ibm.com/developerworks/java/library/j-dcl.html : Listing 6. Assembly code produced from code in Listing 5 請注意看最後一段 "Not all JIT compilers generate the code as above." --- public class Test { static Test a; public Test(){ try{ Thread.sleep(3000); }catch(InterruptedException e){} System.out.println("Constructor finish!!"); } public static void main (String [] args){ Thread t = new Thread(new Runnable(){ public void run(){ for(int i=0;i<10;i++){ System.out.println(a); try{ Thread.sleep(500); }catch(InterruptedException e){} } } }); t.start(); a=new Test(); } } --- 執行結果: null null null null null null null Constructor finish!! Test@757aef Test@757aef Test@757aef -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.67.94
文章代碼(AID): #142cpHKK (java)
討論串 (同標題文章)
文章代碼(AID): #142cpHKK (java)