关于内部类的问题 比如说有个非静态的内部类,它的实例被引用,但是它的外部类实例没有被引用,垃圾回收会不会回收外部类的对象。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package myjava;/** * Created by IntelliJ IDEA. * User: Administrator * Date: 2006-11-27 * Time: 14:49:07 * To change this template use File | Settings | File Templates. */public class TestFinalize { String id ; TestFinalize(String id){ this.id =id; ti = new TestInner(id); System.out.println("TestFinalize constructs:"+id); } public void finalize(){ System.out.println("TestFinalize finalize:" + id); } public class TestInner{ String a="" ; TestInner(String id){ a = id; } public void finalize(){ System.out.println("TestInner finalize:" + a); } } public TestInner ti; public static void main(String[] args){ TestFinalize tf1 = new TestFinalize("one"); TestFinalize tf2 = new TestFinalize("two"); TestInner ti = tf1.ti; tf1 =null; System.out.println("System.gc(); fisrt"); System.gc(); System.out.println(tf1); System.out.println(tf2); tf2 = null; System.out.println("System.gc(); second"); System.gc(); }}结果:TestFinalize constructs:oneTestFinalize constructs:twoSystem.gc(); fisrtnullmyjava.TestFinalize@19821fSystem.gc(); secondTestInner finalize:twoTestFinalize finalize:two好像没有被回收 跪求高人解答,想从网页直接下载网页上的内容到本地硬盘,写了个java程序,但是有问题~ 一个关于for循环的问题. 郁闷的环境变量问题(100分跪求) FTP问题 HashMap与HashTable的问题! swing或awt中的设置组件setsize方法的问题。奇怪啊 JAVA程序中的字体怎么办? what a java could be?-----let's talk in english!($_$) 心情极其不爽,散分了,开心一下 关于Scanner的方法问题 一个将字符写人文件的问题 如何设置所调用的jar包?
* Created by IntelliJ IDEA.
* User: Administrator
* Date: 2006-11-27
* Time: 14:49:07
* To change this template use File | Settings | File Templates.
*/
public class TestFinalize {
String id ;
TestFinalize(String id){
this.id =id;
ti = new TestInner(id);
System.out.println("TestFinalize constructs:"+id);
}
public void finalize(){
System.out.println("TestFinalize finalize:" + id);
}
public class TestInner{
String a="" ;
TestInner(String id){
a = id;
}
public void finalize(){
System.out.println("TestInner finalize:" + a);
}
}
public TestInner ti;
public static void main(String[] args){
TestFinalize tf1 = new TestFinalize("one");
TestFinalize tf2 = new TestFinalize("two");
TestInner ti = tf1.ti;
tf1 =null;
System.out.println("System.gc(); fisrt");
System.gc();
System.out.println(tf1);
System.out.println(tf2);
tf2 = null;
System.out.println("System.gc(); second");
System.gc();
}
}结果:
TestFinalize constructs:one
TestFinalize constructs:two
System.gc(); fisrt
null
myjava.TestFinalize@19821f
System.gc(); second
TestInner finalize:two
TestFinalize finalize:two好像没有被回收