sau*_*ook 0 java arrays pass-by-reference
我很困惑为什么我不能使用该语句来显示数组中的值?
System.out.println(intarray);
这是输出“[I@7852e922”
如果 java 是按值传递的,那么该语句不应该返回数组的值而不是对象引用。这是我使用的修复方法。
System.out.println(Arrays.toString(intarray));
Run Code Online (Sandbox Code Playgroud)
这与 Java 按值传递无关。
System.out.println(intarray)使用该toString()方法来获取String所传递对象的表示。
Object的默认实现toString会打印您所说的“乱码”(由表达式生成getClass().getName() + "@" + Integer.toHexString(hashCode()))。数组类不会覆盖该实现。因此,System.out.println(intarray)打印出“乱码”。
另一方面,Arrays.toString(intarray)返回 a String,其中列出了传递的数组的元素。
| 归档时间: |
|
| 查看次数: |
600 次 |
| 最近记录: |