目录
一、概念
栈溢出(StackOverflowError)
概念: 栈溢出是指线程的调用栈(即方法调用的嵌套)超过了系统所允许的最大深度,导致栈溢出异常。在Java中,每个线程都有一个调用栈,用于存储方法调用的信息。
常见原因:
- 递归调用深度过大,没有合适的终止条件。
- 方法调用层次过多,导致栈空间耗尽。
堆溢出(OutOfMemoryError)
概念: 堆溢出是指Java虚拟机中的堆内存不足以支持新的对象创建时抛出的异常。在Java中,堆用于存储对象实例。
常见原因:
- 内存泄漏,无法被垃圾回收的对象持续占用堆内存。
- 创建大量对象,导致堆内存不足。
二、排查方法
栈溢出(StackOverflowError)
排查方法:
-
检查递归: 检查代码中的递归调用,确保终止条件的设置是正确的。
-
减少递归深度: 如果是合理的递归,可以尝试减少递归的深度,或者改用循环来代替递归。

最低0.47元/天 解锁文章
657

被折叠的 条评论
为什么被折叠?



