记程序员生涯中第一次遇到内存溢出错误
- 情景:
在我使用Hibernate使用2个表【客户表,订单表】进行联表查询时,发生的StackOverflowError。
- 问题:
我两个实体类中都重写了toString()方法,并且相互调用了彼此,导致我println(客户)时,一直会相互调用彼此的toString()方法,导致栈溢出错误。
- 解决:
去掉订单类toString()方法中的客户类。
- 分析:
在《深入理解Java虚拟机》一书中,是这么介绍的(Page 26)
Java虚拟机栈---在Java虚拟机规范中,对这个区域规定了两种异常情况:如果线程请求的栈深度大于虚拟机所允许的深度时,将抛出StackOverflowError。另一个是OutOfMemoryError。
- 总结:
其实,内存溢出错误就在我们身边...
----------------------------------------吐糟分割线----------------------------------------------------------------------------------------
时间:2016年11月7日14:22:21
妈蛋的,自从遇到第一次内存泄露异常后,我经常遇到内存泄露问题,额...好无语啊。
作者:欲戴王冠.必承其重
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。