关于垃圾收集器和nested class的问题

zhoulinux 2006-10-11 12:27:52
public class TestBed
{
public TestBed()
{
}
public void f()
{
System.out.println( "f()" );
}
public static class Tester
{
public static void main(String[] args)
{
TestBed t = new TestBed();
t.f();
}
}
}
这是think in java中的一个例子,为什么在我的JCreator中可以通过编译但是不能运行呢?
public class Ex_12
{
public void finalize()
{
System.out.println( "Finalize!" );
}

public static void main(String[] args)
{
Ex_12 ex = new Ex_12();
System.gc();
}
}
这个类为什么不能调用finalize()方法?
...全文
250 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhoulinux 2006-10-17
  • 打赏
  • 举报
回复
我已经找到第一个问题的答案了:
在命令行下输入java TestBed$Tester即可
因为如果一个public类中有nested类的话,编译后的class文件是public类名$nested类名
但是如何在Jcreator下运行还是不知道
water2004 2006-10-14
  • 打赏
  • 举报
回复
1、我想是因为public class TestBed没有主方法吧,
jvm只从public class的主方法启动,内签类里面的public static void main
不是主方法。
2、楼上正解,一般都不使用System.gc(),与finalize方法,因为你不知道它什么时候运行
代码的确定性满足不了
自然80 2006-10-11
  • 打赏
  • 举报
回复
自己看看java的api doc就知道了,
System.gc();只是建议虚拟机垃圾回收,至于是否要回收,取决于虚拟机自己的判断。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧