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。
1.4 新增关键字(语法),用于测试 boolean 表达式状态,可用于调试程序。
使用方法assert<boolean 表达式> , 表 示 如 果 表 达 式 为 真 ( true),则下面的语句执行,否则抛出
AssertionError。
另外的使用方式 assert<boolean 表达式>:<other 表达式>,表示如果表达式为真,后面的表达式忽略,
否则后面表达式的值用于 AssertionError 的构建参数。
注意编译时要增加-source1.4参数,否则报错。]运行时要增加-ea 参数,否则 assert 行被忽略
第八,GC 是什么?为什么要有 GC?
GC 是垃圾收集的意思(GabageCollection),内存处理是编程人员容易出现问题的地方,忘记或者
错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java 提供的 GC 功能可以自动监测对象是否超过
作用域从而达到自动回收内存的目的,Java 语言没有提供释放已分配内存的显示操作方法。
第九,Strings=newString("xyz");创建了几个 StringObject?
两个
两个对象,一个是“xyx”,一个是指向“xyx”的引用对象 s
评论1