String str = "abc"; 和 String str = new String("abc");有什么不同啊?
String[] str = {"a"}; 和 String[] str = new String[3];有什么不同啊?

解决方案 »

  1.   

    字符串"abc"会存放在字符串常量池中,
    String str = "abc"; //声明一个引用指向常量池中的“abc”
    String str = new String("abc");//在对上创建一个字符串对象,初始值为“abc”
      

  2.   

    String[] str = new String[3];//在heap上创建三个String对象,初始值均为Null
    String[] str = {"a"};//数组中存放的是指向常量池字符串“a”的引用
      

  3.   

    String的不回答,自己找,一大堆。
    String[]的那个,简单说,假设你是管分配宿舍的,第一种是你来了N个人,让你分配住。第二种是,先给出N间房,怎么住,住谁,以后再说。其他类型数组类似。
      

  4.   

    字符串"abc"会存放在字符串常量池中,
    String str = "abc"; //声明一个引用指向常量池中的“abc”
    String str = new String("abc");//在对上创建一个字符串对象,初始值为“abc”
    String[] str = new String[3];//在heap上创建三个String对象,初始值均为Null ,长度是3了 ,只是定义初始化3个String对象,均为null
    String[] str = {"a"};//数组中存放的是指向常量池字符串“a”的引用 ,长度是固定的1 ,定义就初始化引用 1楼老大的
      

  5.   

    字符串:new 方式产生的两个对象,直接赋值的是存储在常量池中的。
    数组:请参见其他的,比较类似。