代码1
public static void main(String[] args) {
//动态初始化
int[] a1 = new int[3];
System.out.println(a1);//输出是[I@52e922
}
代码2
public class ArrayPrintTest {
public static void main(String[] args) {
//动态初始化
// int[] a1 = new int[3];
// System.out.println(a1);//[I@52e922
//静态初始化
int[] a2 = new int[] {1,4,2};
System.out.println(a2);//输出的仍是[I@52e922
}
代码3
public class ArrayPrintTest {
public static void main(String[] args) {
//动态初始化
int[] a1 = new int[3];
System.out.println(a1);
//静态初始化
int[] a2 = new int[] {1,4,2};
System.out.println(a2);
//最后输出[I@52e922
}
代码4
public static void main(String[] args) {
//动态初始化
int[] a1 = new int[3];
System.out.println(a1);//[I@52e922
//静态初始化
int[] a2 = new int[] {1,4,2};
System.out.println(a2);//[I@25154f
//遍历数组
for(int i=0;i<a2.length;i++) {
System.out.println(a2[i]);//
}
}
//最后输出
[I@52e922
[I@25154f
1
4
2
问题来了:
1.代码一输出的是数组a1的地址值[I@52e922,这很正常,但为什么执行代码二的时候输出a2的地址值也是[I@52e922?
2.执行代码三时输出的不应该是两段地址值吗,为什么只输出[I@52e922?
3.执行代码四后,把a2数组值遍历后能输出两段不同的地址值?
关于Java数组两种初始化输出数组的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 幻灰龙 2021-03-14 10:59关注
那个不是地址,是obj.toString()的默认实现的结果,大概这样:
public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
解决 无用评论 打赏 举报
悬赏问题
- ¥20 校园二手交易小程序搭建
- ¥15 请问在ubuntu用conda创建环境报错怎么能解决
- ¥15 STM32CubeMX/proteus按键控制指示灯颜色切换
- ¥20 python,计算区位熵和扩张指数
- ¥15 Python环境配置
- ¥15 大四学生的困惑,有偿提问!
- ¥15 解决页面无法编入索引:被“noindex”标签排除的问题?
- ¥15 arduino测量电阻
- ¥15 快手uid转快手号谁能解决 需要开发
- ¥15 iis部署Django时css不生效,来个真人,ai不好使