以下是我刚刚编写的一个人为例子,以帮助我理解java的内部工作原理.
public class Main {
public static void main(String[] args) {
int[] a;
a = new int[12];
System.out.println(a);
}
}
Run Code Online (Sandbox Code Playgroud)
这打印出一些垃圾.由于a是通过引用传递的,我假设println获取a的内存地址,并将其作为字符串进行威胁.我在这儿?你能详细说明究竟发生了什么吗?谢谢.(注意:我对如何打印数组不感兴趣.我知道.)
数组被视为对象,因此默认结果Object#toString()将用作字符串表示.另请参阅Javadoc的这个摘录(单击链接):
类Object的toString方法返回一个字符串,该字符串由对象为实例的类的名称,符号字符"@"和对象的哈希码的无符号十六进制表示组成.换句话说,此方法返回一个等于值的字符串:
Run Code Online (Sandbox Code Playgroud)getClass().getName() + '@' + Integer.toHexString(hashCode())
要实现你想要的,而不是使用Arrays#toString().
System.out.println(Arrays.toString(a));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
927 次 |
| 最近记录: |