在CSDN的首頁上看到一編叫做 java 面試中的陷阱 的文章,其中就有下面那個題目:
第九,String s = new String("xyz");創建了幾個String Object?
兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。
難道直如文中回答的那樣嗎,一條String s=new String(”xyz”)要創建出兩個對象嗎?
難道引用也能稱之為對象嗎?
什么是對象,一個引用,一個句柄,一個指針都能稱之為對象嗎?
那不是任何如 Integer integer=new Integer(100) 都要創建兩個對象嗎?
這好象越來越不對勁了
應該是需要在堆中分配自由內存的類型才能叫做對象吧!
0: new #5; //class String
3: dup
4: ldc #6; //String xyz
6: invokespecial #7; //Method java/lang/String."<init>":(Ljava/lang/String;)V
9: astore_1
不知各位行家的想法如何?
kypfos@MSN.com
新聞熱點
疑難解答