文档介绍:Java 面试题目首先: 第一,谈谈 final, finally, finalize 的区别。第二, Anonymous Inner Class (匿名内部类)是否可以 extends( 继承)其它类,是否可以 implements( 实现)interface( 接口)? 第三, Static Nested Class 和 Inner Class 的不同, 第四, &和&& 的区别。第五, HashMap 和 Hashtable 的区别。第六, Collection 和 Collections 的区别。第七,什么时候用 assert 。第八, GC 是什么?为什么要有 GC? (基础)。第九, String s= new String("xyz"); 创建了几个 String Object? 第十, () 等於多少? (-) 等於多少? 第十一, short s1= 1;s1=s1+ 1;有什么错? short s1= 1;s1 += 1;有什么错?第十二, sleep() 和 wait() 有什么区别?搞线程的最爱第十三, Java 有没有 goto? 第十四,数组有没有 length() 这个方法? String 有没有 length() 这个方法? 第十五, Overload 和 Override 的区别。 Overloaded 的方法是否可以改变返回值的类型?第十六, Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用== 还是 equals()? 它们有何区别? 第十七,给我一个你最常见到的 runtime exception 。第十八, error 和 exception 有什么区别? 第十九, List, Set, Map 是否继承自 Collection 接口? 第二十, abstract class 和 interface 有什么区别? 第二十一, abstract 的 method 是否可同时是 static, 是否可同时是 native , 是否可同时是 synchronized? 第二十二,接口是否可继承接口?抽象类是否可实现(implements) 接口?抽象类是否可继承实体类(concrete class)? 第二十三,启动一个线程是用 run() 还是 start()? 第二十四,构造器 Constructor 是否可被 override? 第二十五,是否可以继承 String 类? 第二十六,当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法? 第二十七, try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后? 第二十八,编程题:用最有效率的方法算出 2乘以 8等於几? 第二十九,两个对象值相同((y) == true) ,但却可有不同的 hash code ,这句话对不对?第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 第三十一, swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?第三十二,编程题:写一个 Singleton 出来。第一,谈谈 final, finally, finalize 的区别。 final? 修饰符(关键字)如果一个类被声明为 final ,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract 的,又被声明为 final 的。将变量或方法声明为 final ,可以保证它们在使用中不被改变。被声明为 final 的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为 final 的方法也同样只能使用,不能重载 finally? 再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。 finalize? 方法名。 Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。 finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。第二, Anonymous Inner Cla