为什么String引用变量存储字符串而不是java中的地址?

时间:2016-08-30 08:46:44

标签: java

public class ARRAYS {
    public static void main ( String[] args){

    String s = new String("Hello");
    System.out.println(s);

    char[] abc = new char[5];
    abs[0] = 'a';
    abs[1] = 'b';
    abs[2] = 'c';
    abs[3] = 'd';
    abs[4] = 'e';
    System.out.println(abc);

    doggy d = new doggy();
    System.out.println(d);
    }
}

这里有3个对象,char数组对象(由abc引用),字符串对象(由s引用)和doggy对象(由d引用) 由于abc,d和s是引用变量,为什么d存储地址但是abc和s存储数组的内容?

1 个答案:

答案 0 :(得分:2)

当您写下System.out.println(object);时,您实际看到的内容是object.toString()的值(返回String,这就是String也必须由他们代表的原因含量)。

所以这是因为String对象会覆盖默认的toString()方法 那doggyarrays没有。