[英]Why this code throws java.lang.StackOverflowError
為什么這段代碼執行不正常。 它拋出java.lang.StackOverflowError。 我想知道班級的行為。
public class A {
A a = new A();
public static void main(String[] args) {
A a = new A();
System.out.println("i'm done!");
}}
您創建A
的實例變量a
並在每次調用構造函數時對其進行初始化。 所以它繼續像一個無限循環
您面臨的問題是您在第二行使用默認/空白構造函數重新聲明該類,從而導致無限循環,從而導致StackOverflowError。
刪除以匹配:
public class A {
public static void main(String[] args) {
A a = new A();
System.out.println("i'm done!");
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.