package com.atul;
public class StackOverFlow {
public StackOverFlow() {
callStackOverFlow();
}
public void callStackOverFlow() {
StackOverFlow st = new StackOverFlow();
}
public static void main(String[] args) {
StackOverFlow st2 = new StackOverFlow();
}
}
上記のプログラムでは、OutOfMemory エラーを取得しようとしていましたが、StackOverFlow エラーが発生します。私の知る限り、すべてのオブジェクトはヒープに作成されます。ここでは、コンストラクターで再帰を行っていますが、それでも StackOverFlow エラーが発生します。
なんで?