龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

是谁在说String s = new String(“xyz”);创建了两个String Object?

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
在CSDN的首页上看到一编叫做 Java 面试中的陷阱 的文章,其中就有下面那个题目: 第九,String s = new String("xyz");创建了几个String Object? 两个对象,一个是xyx,一个是指向xyx的引用对象s。

  

  在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


  
精彩图集

赞助商链接