2014-04-05 2 views
1

저는 java programmming을 처음 사용합니다. 오늘이 예제는 정적이 아닌 방법으로 수업을 진행합니다. 당신이 당신의 main() 메소드의 새로운 예를 호출 할 때 모든 신체가 JVM 아키텍처의 관점에서 나에게재귀 생성자 호출로 인해 Java 스택 오버플로가 발생했습니다.

class Example { 
    int x = 10; 
    int y = 20; 
    Example e1 = new Example(); 

    public static void main(String[] args){ 
     System.out.println("main method start"); 
     Example e2 = new Example(); 
     System.out.println("main method end"); 
    } 
} 

답변

4

클래스 예를 상세한 답을 말해 {

int x=10; 
int y=20; 

Example e1=new Example(); // this is the reason 

무엇 일어나고있는 것은, 는 Example e1=new Example();이 실행되고 .

예에서 e1 = new Example(); 당신은 새로운 Example()을 다시 호출 할 새로운 Example() 객체를 생성하고 있습니다. (새로운 Example()에 대한 재귀 호출은 StackOverflowError로 연결됩니다).

관련 문제