昨天晚上写代码的时候碰到一个bug,当时傻乎乎的调好久,请教老师,老师一眼就看出来了。
报错:Exception in thread "main" java.lang.StackOverflowError
我这里写了一个小代码来实现了这个错误 如下:
第一个类 dome01:
package test; public class dome01 { dome02 dome02 = new dome02(); public void name() { dome02.name(); System.out.println("这是一个错误!"); } public static void main(String[] args) { dome01 dome01 = new dome01(); dome01.name(); } }
第二个类dome02
package test; public class dome02 { dome01 dome01 = new dome01(); public void name() { dome01.name(); System.out.println("内存泄漏导致的错误"); } }
控制台运行报错:
相信很快就能发现,dome01中 new了一个 dome02, dome02中又new了一个dome01,在进入程序中 两个对象反复调用
造成了死循环,直到栈溢出,简单说就是内存泄漏了
解决方法:
避免两个方法之间的反复调用,以免出现内存的泄漏