黑马程序员技术交流社区

标题: 求解决,视频学习中的小问题(数组打印结果) [打印本页]

作者: 张云飞    时间: 2013-8-22 20:04
标题: 求解决,视频学习中的小问题(数组打印结果)
本帖最后由 张云飞 于 2013-8-22 21:09 编辑

视频学习中,打印二维数组的引用,即打印出那个满富含义的字符串。玩迷糊了
  1. class Sign{
  2.         public static void main(String args[]){
  3.                 int[][] arr = new int[2][3];                //定义一个二维数组
  4.                 System.out.println("arr    "+arr);        //打印1
  5.                 System.out.println("arr[0]  "+arr[0]);        //打印2
  6.                 System.out.println("arr[1]  "+arr[1]);        //打印3
  7.         }
  8. }
复制代码
打印1结果:


下边是栈、堆中的分布


根据打印结果,[代表数组,I代表数组中存放的类型,@后边的便是对象在栈中的地址。对于这个地址有点不懂
1、arr和arr[0]在堆中的地址为什么不一样?
2、我运行了多次,观察结果 :变化了,不过也有点规律。
操作系统、组成原理学的不太好,希望得到指示,谢谢!!!





作者: EYE_SEE_YOU    时间: 2013-8-22 20:33
int[][] arr = new int[2][3];
哥哥,我给你打个比喻吧,
arr是大楼门牌,arr[]是楼层数,arr[][]是房间号
所以每个地方都有不同的地址
arr是二维数组名,arr[]是一维数组名,arr[][]是数组中的元素
作者: 张云飞    时间: 2013-8-22 21:08
EYE_SEE_YOU 发表于 2013-8-22 20:33
int[][] arr = new int[2][3];
哥哥,我给你打个比喻吧,
arr是大楼门牌,arr[]是楼层数,arr[][]是房间号

三块不同的地方,所以不可能相同。再者,相同就完蛋了。是这样吧?版主,三克油!!!






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2