实例化一个类,如:String str = new String("xyz");实例化了一个str对象,是否还实例化了一个引用对象呢?具体这个引用对象是什么呢?

解决方案 »

  1.   

    2个对象String str = null; //引用
           str = new String("abc"); //实例
      

  2.   

     呵呵  不好意思,应该是一个对象 String str= null 只是引用不是对象... 学习了<1>  String s1 = "abc";//一个对象abc  在字符池里 
          String s2 = new String("abc");// 一个对象s2  在堆里,abc在1中以创建 
          String s3 = "abc";//    对象地址赋值,指向1中的abc,不创建对象,因为没有new  
    <2> 
          String s1 = new String("abc");//全局  两个对象,一个为abc,在字符池里;另一个为s1,在堆里 
          String s1 = new String("abc");//局部  一个对象s1,在堆里,这里的abc没创建是因为全局里已创建了abc 
    ---------------------- 
    有个疑问:一个对象abc  在字符池里 那么栈和池是一样的吗 我一直这样理解的 
    String s1 = "abc";引用s1放在栈中 “abc”也在栈中 但是会先在栈中查找 “abc”是否存在 
    String s2 = new String("abc"); 引用s2在栈中 不管“abc”有没有 都会重新创建放在堆中 这样理解对么?