我是Java的编程和运行代码的初学者
String demo = "This is first string";
char ch[]= demo.toCharArray();
System.out.println(ch);
输出:
This is first string
而,
System.out.println("result is "+ch);
输出: - (显示与对象内存相关的哈希码)
result is: someHashcode
1)为什么我们两个都有不同的输出(上面提到的代码)?实际发生在这里的事情。
另一方面
int num[]={1,2,3,4};
System.out.println(num);
输出: -
somehashcode
2)这在char数组的情况下不起作用(如上面提到的第一个代码),并将输出作为哈希码,为什么?
答案 0 :(得分:5)
PrintStream
为字符数组重载println
方法。将字符数组传递给它时,它会从中打印字符,就像它是一个字符串一样。
当你传递其他类型的数组时,它将它视为对象 - 它的toString()
表示被打印出来。
在这个例子中:
System.out.println("result is "+ch);
您要将数组附加到字符串文字,因此toString
ch
形式的{{1}}将附加到文字中,这就是您无法获得预期结果的原因。