샘플 코드 :왜 StackOverflowException이 호출 되었습니까? 왜 HeapOverSizedException가 발생하지 않습니까?
이Static void main(string[] args) { Class1 c1 = new Class1(); }
Class1 { Class1() { Class2 c2 = new Class2(); } }
Class2 { Class2() { Class1 c1 = new Class1(); } }
위의 코드는 StackOverFlowException
가 발생합니다. 여기서 우리는 Class1
& Class2
개체를 반복적으로 생성합니다. 개체가 힙에 저장되고 왜 던지지 않는지 HeapOversizedException
또는 someotherException
힙에 관련이 있습니까?
힙 (메모리)이 부족하지 않으므로 재귀 적으로 스택이 끊어집니다. –
또한, "힙 크기 초과 예외"가 * 있습니다. ['OutOfMemoryException'] (http://msdn.microsoft.com/en-us/library/system.outofmemoryexception.aspx)라고합니다. – Jon
이것은'OutOfMemoryException'으로 정의 될 것입니다. 이것은 스택의 실행 스택을 참조하는 Stack입니다. –