String s=new String("xyz");创建了几个对象 String Object ?
答案是:两个  为什么呢???

解决方案 »

  1.   

    "xyz"本身就是一个对象.你可以写成String s = "xyz";
    new String()这又新建了一个对象。
    你可以试一下s == "xyz",返回的是false,说明这两个不是一个对象
      

  2.   

    很老的问题了,http://topic.csdn.net/u/20070828/10/43260254-04f1-4ac0-9da1-b48af45c2a83.html,个人认为 43楼回答的较为准确。楼主去看一下。
      

  3.   

    简单来说,String s=new String("xyz");至少有一个,如果已经有String sr="xyz";这样的语句,那后来new的对象就是String缓冲池的拷贝。如果没有的话,那String s=new String("xyz")这句话首先会在缓冲池和堆内存中分别创建一个
      

  4.   

    应该是两个对象,堆内存中一个xyz,栈内存中一个s。s是指向xyz的!