JAVA问题:为什么能这样写????这样写有什么好处??实现关闭AWT时我也见到过了,真不知为什么能这样?

new Thtead(new Runable(){ public void run(){……}}
2024-11-29 06:26:41
推荐回答(3个)
回答1:

当然可以,new Thread(Runnable r).start();你总见过吧。而 new Runnale(){...public void run()
{……}}。其实就是给Thread构造器中传个Runnable对象的引用。
这就是匿名内部类。
好处在于节省内存,对象的创建只有this引用而不用再赋给另外一个引用。由于没有指向他们的指针,java垃圾回收机制会将其看做是垃圾。对于只用一次或偶尔使用几次的对象可以让jvm尽快的将其回收。在web开发中作用可能不是很明显,但对于移动设备的编程尤其重要,你可以看看android应用开发的代码中几乎每个方法,类都是这么实现的。

回答2:

匿名内部类

回答3:

匿名的内部类。主要用于回调!
因为Java是静态语言,和一些动态语言不同,所以Java为了能有一些动态的特性,就提供了匿名内部类的方式,在实际编程中主要用来做回调(Callback)。Spring框架中就大量使用了这种方式。