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

             昨天晚上寫代碼的時候碰到一個bug,當時傻乎乎的調很久,請教老師,老師一眼就看出來了。java

報錯:Exception in thread "main" java.lang.StackOverflowError dom

我這裏寫了一個小代碼來實現了這個錯誤  以下:spa

第一個類 dome01:code

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("內存泄漏致使的錯誤");
    }
}

 控制檯運行報錯:blog

相信很快就能發現,dome01中 new了一個 dome02, dome02中又new了一個dome01,在進入程序中 兩個對象反覆調用內存

形成了死循環,直到棧溢出,簡單說就是內存泄漏了io

解決方法:class

        避免兩個方法之間的反覆調用,以避免出現內存的泄漏thread

相關文章
相關標籤/搜索