Exception in thread "http-nio-8081-Poller" java.lang.OutOfMemoryError: Java heap space (메클 힙인스 스택메)

Yunny.Log ·2022년 6월 26일
0

Debugging

목록 보기
26/69
post-thumbnail

Exception in thread "http-nio-8081-Poller" java.lang.OutOfMemoryError: Java heap space

: 내가 WHILE 문을 돌리는데 무한으로 돌게해놔서 이러한 에러가 났던 것 !

💡 위 에러로 자바 메모리 구조가 궁금해졌음 !

정리 내용

http://www.tcpschool.com/java/java_array_memory
https://wikidocs.net/257

JDK, JRE, JVM

  • JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행
  • 컴파일된 바이너리 코드는 어떤 JVM에서도 동작 가능

- 모든 자바 프로그램은 자바 가상 머신(JVM)을 통해서 실행

  • 자바 프로그램이 실행되면!
    • JVM은 운영 체제로부터 해당 프로그램을 수행할 수 있도록 필요한 메모리를 할당

할당받은 메모리를 메소드-힙-스택 으로 관리

1) 메소드 영역 (클래스 정보, 클래스 변수)

  • 메소드(method) 영역은 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 클래스 변수(static variable)가 저장되는 영역
  • JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(*.class)를 읽어들여, 해당 클래스에 대한 정보를 메소드 영역에 저장

2) 힙(heap) 영역 (인스턴스 변수)

  • 힙(heap) 영역은 자바 프로그램에서 사용되는 모든 인스턴스 변수가 저장되는 영역
  • new 키워드를 사용하여 인스턴스가 생성 => 해당 인스턴스의 정보를 힙 영역에 저장
  • 힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당 (낮 -> 높)

3) 스택(stack) 영역 (메소드)

  • 스택(stack) 영역은 자바 프로그램에서 메소드가 호출될 때 메소드의 스택 프레임이 저장되는 영역
  • 스택 영역은 메소드의 호출과 함께 할당되며, 메소드의 호출이 완료되면 소멸
  • 높은 주소에서 낮은 주소의 방향으로 할당 (높 -> 낮)

SO ~

  • 나는 인스턴스 변수 생성을 하고 있었는데, WHILE 무한으로 인스턴스 변수가 넘 많이 생성돼서 힙 영역이 꽉 차게되었다구 경고한 것

메클 힙인스 스택메 로 암기 GO

"" 매드클라운이 힙합인스타해서 스드메 아니고 스택메 받는데~ ""

0개의 댓글