int a=10
String b="abc";
String c=new String("abc");
MyTest test=new MyTest();
这段代码创建了几个对象?

解决方案 »

  1.   

    3个 两个String类对象 一个Mytest
      

  2.   

    第一个字符串常量开辟一个空间  第二开辟一个空间   如果是这种形式  String a="abc";String b="abc"  a b 就是同一个对象
      

  3.   

    我觉得 "abc"是个常量字符串对象,new String("abc")本来应该new 一个字符串,但因为都是“abc”,所以不会在堆内存中新建一个字符串常量,所以字符串对象只有一个,因为同一个常量字符串只会创建一个。另外b、c都只是指向它的引用,不知对不对?
      

  4.   

    简单来说就是区别与 new String()开辟一个栈空间   字符常量放在常量池中  String a=“qqq” String b=“qqq” String c=“qq”+“q”  a b c都是同一个对象的引用