昨天晚上寫代碼的時候碰到一個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