IT Notes‎ > ‎Java‎ > ‎Java Language‎ > ‎《Java 解惑》笔记‎ > ‎

Puzzle 12: ABC

对象的引用的和实体

char[] 不是 String.

以下两段代码执行以后, 是否输出相同的内容?
  • 第一段: Object numbers = new char[]{'1', '2', '3'}; System.out.println(numbers);
  • 第二段: System.out.println(new char[]{'1', '2', '3'});
输出结果分别是:
  • [C@de6ced
  • 123
居然不是一样的. 在具体打印时, 事实上调用了两个不同的方法:
原因可以这样简单地解释:
Object numbers = new char[]{'1', '2', '3'};这句中,左边是右边的reference,右边就是具体的entity了,所以,左边打印出来是类名。

其他:
虽然字符型也属于整型,但通常不把它们当着数字来看待——对于println方法,当然想要输出字母而不是它对应的数字本身。char[]数组并非String, char[] 没有重写toString()方法。
Comments