文档介绍:Java笔试题
日期:2007-11-18
修订日期:2007-12-20
一、基本部分
1、请描述HashMap与HashTable的异同
答案:
1)HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。
2)HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。
3)HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因为contains方法容易让人引起误解。 
4)Hashtable继承自Dictionary类, interface的一个实现。
2、char型变量中能不能存贮一个中文汉字?为什么? 
答案:
是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的 
3、int 和 Integer 有什么区别
答案:
1)Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
2)原始类型封装类,boolean Boolean、char Character、byte Byte、short Short、int Integer、long Long、float Float、double Double
3)引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关
4、说出一些常用的类,包,接口,请各举5个
答案:
1)常用的类:BufferedReader  BufferedWriter  FileReader  FileWirter  String  Integer
2)常用的包:        
3)常用的接口:Remote  List  Map  Document  NodeList
5、描述final, finally, finalize的区别
答案:
1)final:修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载
2)finally:再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有