to htouch(回家) int是基本数据类型,对int对象的操作只有系统定义的那么几个运算符,你也不能派生它。它只能用传值的方法传递。int类型的数据不需要new的。Integer不是基本类型,它有自己的一些方法。它可以用传递引用的方法传递。Integer的对象是new出来的。它的开销大。形象的说int是原子, Integer是分子。
应该是13个引用。 即 a, a[0]...a[2], a[0][0]...a[2][2] 1个 + 3个 + 9个a[i][j][k]没有自己单独的引用。只能通过数组访问。
To: clavy(有巢无车氏) 晕菜了,恕我无知 先澄清一下,你认为两种方式都是13个句柄,还是只有第二种是? 另外,为什么a[i][j][k]没有自己的引用呢?因为没有创建吗?这个a[i][j][k]难道不是句柄吗?
int[][][] a=new int[3][][];
for(int i=0;i<3;i++){
a[i]=new int[3][];
for(int j=0;j<3;j++){
a[i][j]=new int[3];
}
}
int是基本数据类型,对int对象的操作只有系统定义的那么几个运算符,你也不能派生它。它只能用传值的方法传递。int类型的数据不需要new的。Integer不是基本类型,它有自己的一些方法。它可以用传递引用的方法传递。Integer的对象是new出来的。它的开销大。形象的说int是原子, Integer是分子。
即 a, a[0]...a[2], a[0][0]...a[2][2]
1个 + 3个 + 9个a[i][j][k]没有自己单独的引用。只能通过数组访问。
晕菜了,恕我无知
先澄清一下,你认为两种方式都是13个句柄,还是只有第二种是?
另外,为什么a[i][j][k]没有自己的引用呢?因为没有创建吗?这个a[i][j][k]难道不是句柄吗?
第二维存放各存放三个指向一维数组的引用(a[0][0][],a[0][1][],a[0][2][]...a[2][2][]),
共9个,
最后加一个a,指向一个三维数组,
a[1][1][1]里面放的不是引用,是一个整数数值。。
一开始想错了,多谢clavy纠正。。