第一,谈谈 final,finally,finalize 的区别。
最常被问到。
第二,anonymousinnerclass(匿名内部类)是否可以 extends(继承)其它类,是否可以
implements(实现)interface(接口)?
不行,对于匿名内部类,看到的一句话说的很到位:
new <类或接口> <类的主体>
这种形式的 new 语句声明一个新的匿名类,他对一个给定的类进行扩展,或实现一个给定
的接口。他还创建那个类的一个新实例,并把他作为语句的结果而返回。
这就是匿名类的实质,它本身就是一个类的继承或一个接口的实现,所以继承其它类或借口是
无意义的.在 eclipse 中冶证实了我的想法.无论是继承其它类还是实现其它借口都显示
Syntax error on token
第三,staticnestedclass 和 innerclass 的不同,说得越多越好(面试题有的很笼统)。
static nested class 指静态嵌套类,或称嵌套类,是 C++中常用的说法,inner class 指内部类,是
JAVA 中的说法.
内部类是一个类内部类的统称,具体分为四种:成员类,静态成员类,局部类,匿名类.其中匿名类
是局部类的特殊情况.对于成员类和静态成员类都存在于类的顶层代码中,相当于类的静态方
法和非静态方法的关系,区别在于成员类依赖于类实例而静态成员类不依赖.所以前者只能访
问实例方法和成员而后者只能访问静态方法和成员.它们都用于创建一个只和当前类有关,和
其它类无关的依赖类.是否静态取决于是否依赖类的实例.局部类相当于局部变量,存在于类
的局部代码中,相当于在 main()中随意定义和使用类,唯一的不同是它只能使用 final 型的局
部变量,这和垃圾回收机制有关,即局部变量会在代码块结束后被回收,而对象不一定,所以对
象只能使用 final 的局部变量,同样,局部类存在的局部代码块也可以有静态和非静态的差别.
局部类罪常见的应用就是匿名类.匿名类就是无名子的局部类,常在 SWING 设计中的添加监
听中出现.
static nested class 相当于 inner class 中的静态成员类.
实例代码就不贴了,太累,发个地址,这篇帖子说的相当详细,就是有点累赘.
http://java.chinaitlab.com/oop/725592.html
第四,&和&&的区别。
这个问得很少。