Java 面试问题
面试是检验 Java 知识的重要环节。本章整理常见的 Java 面试问题。
核心语法问题
1. Java 的基本数据类型有哪些?
答案:
- 整数类型:byte、short、int、long
- 浮点类型:float、double
- 字符类型:char
- 布尔类型:boolean
2. == 和 equals() 的区别?
答案:
==比较引用(基本类型比较值)equals()比较对象内容(需要重写)
String str1 = new String("Hello");
String str2 = new String("Hello");
str1 == str2; // false(不同对象)
str1.equals(str2); // true(内容相同)
3. String、StringBuilder、StringBuffer 的区别?
答案:
- String:不可变,线程安全
- StringBuilder:可变,非线程安全,性能好
- StringBuffer:可变,线程安全,性能较差
OOP 面向对象问题
4. 面向对象的三大特性?
答案:
- 封装:隐藏实现细节
- 继承:代码复用
- 多态:同一接口不同实现
5. 抽象类和接口的区别?
答案:
- 抽象类:可以有实现,单继承
- 接口:Java 8+ 可以有默认方法,多实现
6. final 关键字的作用?
答案:
- 修饰类:不可继承
- 修饰方法:不可重写
- 修饰变量:不可修改
异常、集合、IO、多线程相关问题
7. 异常的分类?
答案:
- Checked Exception:编译时检查,必须处理
- Unchecked Exception:运行时异常,可以不处理
- Error:系统错误