在创建一些数组时,我注意到
char[] javaArray = {'j','a','v','a'};
打印输出
java
但是String[] javaStringArray = {"j","a","v","a"};
只打印堆栈位置。我知道char和String非常不同,但JVM如何知道要为第一个输出chars而仅为第二个输出堆栈位置?
我正在使用IntelliJ和命令System.out.println(javaArray);
PrintStream
对于char[]
有一个特殊的覆盖,但它缺少对于String[]
和其他数组类型的这样的覆盖:
PrintStream.println(char[] x)
如果在打印时调用javaArray
的toString()
,结果会类似于打印String[]
的结果:char[] javaArray = {'j','a','v','a'};
System.out.println(javaArray.toString()); // Prints something like [C@1540e19d
char[] javaArray = {'j','a','v','a'}
这段代码在哪里打印出java
? - ernest_kprintln
的重要细节,不如将其放在开头显著位置。 - jpmc26