rt

解决方案 »

  1.   

    创建了两个String Object?
    怎么会呢。这是jdk上的解释:
    String(String original) 
              初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本
    String s=new String("xyz");
    我觉得:
    String s 是声明了一个String 类型的对象,但没有赋予空间;
    new String("xyz");分配了一个空间,用xyz来初始化。
      

  2.   

    String s=new String("xyz");s放在棧里
    String("xyz");放在堆里
      

  3.   

    请问String s=new String("xyz");为什么是创建了两个String Object??这条语句怎么可能创建两个String对象?楼主说说原因先
      

  4.   

    String s=new String("xyz");s放在棧里
    String("xyz");放在堆里----------------------对的
      

  5.   

    ^_^
    楼主写错了,不是两个String Object。就一个String对象,然后一个String引用变量s。new String("xyz")会在堆上创建String对象。然后会将此对象所在的堆的地址作为引用值传递给String对象的引用变量s保存。这里引用变量s是分配在栈上面的。在堆上面分配存储空间的才称为变量,而这里的s只是一个栈上的变量而已。(在32位机器上,相当于一个32位整型变量)