2021年Java常见面试题及答案解析
2021年Java常见面试题及答案解析
面向对象编程
- 解释Java中的封装、继承和多态。
- 封装: 将数据和操作数据的方法绑定在一起,隐藏内部实现细节,对外提供公共访问接口。
- 继承: 允许一个类(子类)继承另一个类(父类)的属性和方法,实现代码重用和扩展。
-
多态: 同一个方法调用,可以根据对象的不同类型执行不同的操作,提高代码灵活性和可扩展性。
-
Java中的抽象类和接口有什么区别?
- 抽象类: 可以包含抽象方法和具体方法,不能被实例化。
- 接口: 只能包含抽象方法和常量,可以被多个类实现。
集合框架
- ArrayList和LinkedList的区别?
- ArrayList: 基于数组实现,查询快,增删慢。
-
LinkedList: 基于链表实现,查询慢,增删快。
-
HashMap和HashTable的区别?
- HashMap: 线程不安全,允许键和值为null。
- HashTable: 线程安全,不允许键和值为null。
多线程
- 创建线程的方式有哪些?
- 继承Thread类
-
实现Runnable接口
-
线程同步的方式有哪些?
- synchronized关键字
- Lock接口
异常处理
- Java中的异常类型有哪些?
- Checked Exception: 编译时异常,必须处理。
- Unchecked Exception: 运行时异常,可以选择处理。
-
Error: 系统错误,通常无法处理。
-
try-catch-finally语句块的作用?
- try: 包含可能抛出异常的代码。
- catch: 捕获并处理异常。
- finally: 无论是否发生异常,都会执行的代码块。
其他
- Java中的泛型是什么?有什么作用?
- 泛型: 提供编译时类型安全检测机制,避免强制类型转换。
- Java 8的新特性有哪些?
- Lambda表达式
- Stream API
- 接口默认方法
答案解析
请注意,以上答案仅供参考,具体答案可能会根据面试官的提问方式和考察重点有所不同。建议结合自身实际情况和理解进行回答。