Exception in thread "main" java.lang.StackOverflowError(栈溢出)

             昨天晚上写代码的时候碰到一个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,在进入程序中 两个对象反复调用

造成了死循环,直到栈溢出,简单说就是内存泄漏了

解决方法:

        避免两个方法之间的反复调用,以免出现内存的泄漏

 

posted @ 2020-03-10 16:33  一生的风景  阅读(15534)  评论(0编辑  收藏  举报