본문 바로가기

language/자바

[java] static 영역, heap 영역, stack 영역 (JVM)

나는 메모리를 이러한 구조로 이해하고  있었으나.... 이건 일반적인경우고 자바의경우는다르다

 

 

JVM의 구조가 다른것을 오늘에서야... 알았다...

5가지로 나눌수 있다

자세한 내용은 추가적인 검색을 추천드리고... (죄송합니다)

 

내가 말하고싶은거는

static은 어디에 저장되냐는 것이다

 

답부터 부터 말하면

method 영역이다

method영역에 static영역이 포함되고

static이 붙은 것들은 static영역에 저장된다

 

 

5가지 영역중 3가지만 간략하게 말하면

 

method영역
프로그램이 시작전에 로드되고 프로그램이 종료 시에 소멸된다 - 전역변수처럼 사용가능

 

stack 영역

메소드 호출과 관련된!

지연변수, 매개변수 등이 스택영역에 저장되었다가 메소드가 끝이나면 소멸된다

 

Heap 영영

클래스의 객체(인스턴스), new 연산자에 의해  동적으로 생성된다

 

 

*********

String 상수는 Heap 영역에 저장된다 (heap 영역의 String constant pool 영역)

 OOM 방지를 위해 String pool이 heap에 있음

 

String a = "Car";   // a는 변수 Car는 상수

 

https://hyeran-story.tistory.com/123