Java面试必备:全面解析JAVA面试重点

需积分: 3 5 下载量 123 浏览量 更新于2024-07-20 收藏 127KB DOC 举报
"JAVA面试题库(附答案) 1. 是否可以继承String类? 答:String类是final类,因此不可以被继承。 2. 构造器Constructor是否可被override(重写)? 答:构造器Constructor不能被继承,所以不能重写Overriding,但可以被重载Overloading。 3. 当一个线程进入一个对象的一个synchronized方法后,其他线程是否可进入此对象的其他方法? 答:不能,一个对象的一个synchronized方法只能由一个线程访问,确保了线程安全。 4. try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后? 答:会执行,在return前执行。finally块中的代码无论是否发生异常都会执行,通常用于释放资源。 5. 最有效率的方法计算2乘以8等于几? 答:2 << 3,这是位移运算,效率较高。 6. 两个对象值相同(x.equals(y)==true),但却可有不同的hashCode,这句话对不对? 答:不对。根据equals()和hashCode()的一致性原则,如果两个对象相等(equals()返回true),它们的hashCode必须相同。 7. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 答:是值传递。在Java中,对象引用是按值传递的。虽然方法内部可以改变对象的属性,但对象的引用本身不会改变。 8. switch是否能作用在byte上,是否能作用在long上,是否能作用在String上? 答:switch可以作用在byte、char、short和int类型上,Java 7以后还可以作用于枚举类型。不能作用于long和String。 9. Hashtable和HashMap的区别: - Hashtable继承自Dictionary类,HashMap是Java 1.2引入的Map接口的一个实现。 - HashMap允许null作为键或值,而Hashtable不允许。 - Hashtable的contains方法已被移除,改为containsValue和containsKey,避免混淆。 - 最大的区别是,Hashtable的方法是同步的(Synchronized),而HashMap不是,这在多线程环境下需要额外考虑同步问题。 这些面试题涵盖了Java基础、并发、内存管理、集合框架等多个核心知识点,对于准备Java面试的开发者来说,这些都是必备的知识点。理解并掌握这些内容,有助于提升面试成功的机会。