1. 空指针异常(NullPointerException)
核心根源:Java 中引用类型默认值是null,若未给它分配实际对象(即未执行new或未赋值有效对象),直接操作会触发异常。
解决步骤:
-
检查引用变量是否初始化:确保使用前通过
new创建对象(如String str = new String();),或赋值为非null的有效对象。 -
方法返回值判空:调用可能返回
null的方法(如map.get(key)、数据库查询方法)后,先判断是否为null再操作。java
运行
String result = queryData(); // 可能返回null的方法 if (result != null) { // 先判空 System.out.println(result.length()); } -
使用工具类简化判空:JDK 8 + 可通过
Optional类避免显式判空,例如Optional.ofNullable(result).ifPresent(s -> System.out.println(s.length()));。
2. 数组越界异常(ArrayIndexOutOfBoundsException)
核心根源:Java 数组是 “固定长度 + 0 基索引”(即第一个元素索引为 0,最后一个为数组名.length - 1),访问索引超出此范围就会报错。