class Aa
{
static int x;
int index;
Aa()
{
x++;
System.out.println("第 " + x + "次产生对象");
setId(x);
}
void setId(int id)
{
index=id;
}
protected void finalize()
{
System.out.println("第 " + index + "个对象被回收");
}
public static void main(String args[])
{
new Aa();
new Aa();
new Aa();
System.gc();
}
}
/*结果为:
第1次产生对象;
第3次产生对象;
第3次产生对象;
第1个对象被回收.
第2个对象被回收.
第3个对象被回收.
我有一点不明白的是在main方法中执行了三次new Aa()之后,再执行System.gc()之后gc()方法三次调用
finalize()这也能说的过去,可是那个index变量怎么会保存(1,2,3)的值呢?请教调用能简要说明一下这个
程序的执行过程.不胜感激!
*/
{
static int x;
int index;
Aa()
{
x++;
System.out.println("第 " + x + "次产生对象");
setId(x);
}
void setId(int id)
{
index=id;
}
protected void finalize()
{
System.out.println("第 " + index + "个对象被回收");
}
public static void main(String args[])
{
new Aa();
new Aa();
new Aa();
System.gc();
}
}
/*结果为:
第1次产生对象;
第3次产生对象;
第3次产生对象;
第1个对象被回收.
第2个对象被回收.
第3个对象被回收.
我有一点不明白的是在main方法中执行了三次new Aa()之后,再执行System.gc()之后gc()方法三次调用
finalize()这也能说的过去,可是那个index变量怎么会保存(1,2,3)的值呢?请教调用能简要说明一下这个
程序的执行过程.不胜感激!
*/
解决方案 »
- synchronized(Thread.currentThread())和synchronized(this)的区别?
- JScrollPane的 add和setViewportView怎么回事啊
- JfreeChart 中 timeseries.add(millisecond,value);
- 初学JAVA,请教一个equals重写问题
- 有this对象可不可以知道该this对象所正在执行的函数
- 谁能给我解析一下有关音频、视频编码格式!或是提供些相关资料
- 真是无语了!谁能帮我解决这个变态问题!!!
- java中能使用MAC的look and feel吗?
- 关于数据库的小问题大家指点
- java新手求助,用jdk编程怎么查帮助啊?
- 关于java paint的一点问题,实在没找出答案
- 如何文本框中规定日期格式和下拉框问题
{
x++;
System.out.println("第 " + x + "次产生对象");
setId(x);
}
中setId(x)就把x的值放入到index变量中去了,这个是对象的属性,所以在最后调用的时候能依次显示1,2,3的值产生第一个对象,执行构造函数,x=1,index=x;
产生第2个对象,执行构造函数,x=2,index=x;
产生第3个对象,执行构造函数,x=3,index=x;
最后再依次销毁
第 2次产生对象
第 3次产生对象
第 3个对象被回收
第 2个对象被回收
第 1个对象被回收楼主的运行结果有问题...index变量怎么会保存(1, 2, 3)?
index本来就是实例变量, 每个对象都有自己的index, 在Aa()方法里, 使用setId对index进行赋值, 分别赋予了1, 2, 3...
第1次产生对象;
第3次产生对象;
第3次产生对象;
第1个对象被回收.
第2个对象被回收.
第3个对象被回收.
一楼的朋友说index是类的属性不错的确是类的属性,但是当main函数执行第三个new Aa();之后
index的值应为:3接着System.gc()执行finalize()方法应当输出:
第3个对象被回收.
第3个对象被回收.
第3个对象被回收.
才能按正常的理解方式去理解啊?怎么变成1,2,3了呢?
利用x输出才是3,3,3
因为x是类的公有属性
这里并不是
System.out.println("第 " + x + "个对象被回收");x 是静态的,输出 x 的话,就会输出 三个 3
但例子中输出的是 index
index 是对象各自的属性,分别是 1, 2, 3
ownraul(小蝴蝶的人偶太太太太可爱了~~~) ( ) 信誉:100 Blog 加为好友