# java 常见异常
NullPointerException-空指针异常
当引用一个 null 对象时,会抛出空指针异常,通常需要检查对象是否为空再做操作。
ClassNotFoundException-类不存在异常
当使用不存在的类进行反射或动态加载时,会抛出此异常,需要检查类名是否正确或类路径是否存在。
IndexOutOfBoundsException-下标越界异常
当使用了不合法的数组或列表下标时,会抛出此异常,通常需要检查下标是否超过了数组或列表长度。
SQLException-操作数据库异常
操作数据库 Sql 语法有问题
NoSuchMethodException-方法未找到异常
当调用不存在的方法名称或参数类型时,会抛出此异常,需要检查方法名和参数是否正确。
IOException-输入输出异常
当读取或写入文件、网络等操作时出现异常,会抛出此异常,需要检查文件是否存在、读写权限等。
OutOfMemoryError
package top.rem.rain.synchronized_example; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.util.concurrent.TimeUnit; | |
/** | |
* @Author: LightRain | |
* @Description: 堆内存溢出示例 | |
* @DateTime: 2023-12-23 21:43 | |
* @Version:1.0 | |
**/ | |
public class OutOfMemoryErrorDemo { | |
public static void main(String[] args) { | |
List<Byte[]> list = new ArrayList<>(); | |
int i = 0; | |
try { | |
while (true) { | |
list.add(new Byte[1024 * 1024]); | |
i++; | |
} | |
} catch (Throwable e) { | |
e.printStackTrace(); | |
System.out.println("执行了"+i+"次"); | |
} | |
/* | |
由于内存不足,虚拟机没有可分配的内存了,垃圾回收器也不能释放更多的内存 | |
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space | |
at java.base/java.lang.Throwable.printStackTrace (Throwable.java:659) | |
at java.base/java.lang.Throwable.printStackTrace (Throwable.java:650) | |
at top.rem.rain.synchronized_example.volatileDemo1.main (volatileDemo1.java:23) | |
*/ | |
} | |
} |