首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

一个简单的java有关问题

2012-06-17 
一个简单的java问题我想对一个二维的引用类型初始化,代码如下:Class[][]t new Class[10][10]for(int i

一个简单的java问题
我想对一个二维的引用类型初始化,代码如下:
Class[][]t = new Class[10][10];
for(int i = 0;i != 10;i++)
{
  for(int n = 0;n != 10;n++)
  {
  Class object = new Class();
  t[i][n] = object;//问题在于每次循环赋给数组的都是同一个引用object,我想每个数组项都对应一块内存,也就是说不同的引用,我现在想赋给t之后把object这个引用释放掉,但不释放object所指的内存,不知有什么好方法,或者采用其他的完全不同的方法?
  }
}
谢谢

[解决办法]
LZ你这样做就可以了,object每次都是=new出来的对象,给t赋值后,t也指向了object指向的对象,下一个循环,object指向了另一个对象,是不影响之前赋值的t的
就比如说,我在看这个网页(我相当于object),LZ在看我看的网页(LZ相当于t),我换了一个网页(object指向新的对象),但是LZ看的网页是不变的(因为我是我,你是你)
所以LZ的本身就没问题,2L的方法是减少临时变量,但是结果是一样的

[解决办法]
你写的代码已经达到了你的要求,为什么不自己运行试试看呢?
[解决办法]
object的作用域只在循环内,循环退出后,object引用就会被释放了,而t的作用域在整个循环外面,所以t还会继续保持对应每一个object的的应用。

热点排行