我是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数组的情况下工作(像上面第一次提到的代码),并将输出作为哈希码,为什么?
PrintStream
println
字符数组的方法已重载。当您将字符数组传递给它时,它会从中打印字符,就好像它是一个字符串一样。
当您传递其他类型的数组时,它会将其视为对象-toString()
打印出其表示形式。
在这个例子中:
System.out.println("result is "+ch);
您将数组附加到字符串文字上,因此将toString
形式的形式ch
附加到文字上,这就是为什么无法获得预期结果的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句