Java面试题集--最经典的Java面试题第一,谈谈final,finally,finalize的区别
final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承
finally是异常处理语句结构的一部分,表示总是执行
finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等
第二,AnonymousInnerClass(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)
可以继承其他类或完成其他接口,在swing编程中常用此方式
第三,StaticNestedClass和InnerClass的不同,说得越多越好(面试题有的很笼统)
StaticNestedClass是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化
而通常的内部类需要在外部类实例化后才能实例化
第四,&和&&的区别
&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)
第五,HashMap和Hashtable的区别
HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable
第六,Collection和Collections的区别
Collection是集合类的上级接口,继承与他的接口主要有Set和List
Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作
第七,什么时候用assert
4新增关键字(语法),用于测试boolean表达式状态,可用于调试程序
使用方法assert,表示如果表