簡體   English   中英

為什么這段代碼會拋出java.lang.StackOverflowError

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM