자바 메모리 구조
메서드 영역에는 클래스, 메서드 등의 실행 코드와 static 영역이 들어가 있다. 추가로 공통 리터럴 상수를 보관하는 상수 풀(constant pool)이라는 것도 있는데 나는 인프런 - 김영한님의 자바 기본 강의에서 메서드 영역에 포함되어 있는 걸로 배웠으나 다른 블로그들을 보면 힙 영역에 포함된 것이라고 한다. 의견이 분분하길래 chatGPT에게 물어봤더니 자바 버전에 따라 위치하는 영역이 달라진 것이라고 했다. 즉, 자바 7이전(PermGen)에는 메서드 영역에 있었는데, 자바 8 이후(MetaSpace)로는 힙 영역으로 옮겨졌다는 것이다. 이 변화가 메모리의 한계를 개선시켜줬다고 하는데 나처럼 메서드 영역에 있냐, 힙 영역에 있냐를 구분시키는 질문은 별로 좋지 않은 질문이라고 한다^^! 이러한 메모리 위치는 JVM 내부 구현의 일부이고 우리가 짜는 애플리케이션 코드에는 직접적으로 영향을 주지 않을뿐더러 메모리에 직접 접근해 조작할 수는 없기 때문이랬다. 그러니 너무 신경쓰지 않아도 된다.
in which memory area method area , string constant pool reside in java 8?
I have read oracle document but there is nothing given regarding method area and string constant pool. I have doubt that where method area, string constant pool reside in memory in JDK 8 or 8+ .
stackoverflow.com
☕ 자바 String 타입 특징 이해하기 (String Pool & 문자열 비교)
여타 대부분의 프로그래밍 언어에서 문자열 이라는 데이터를 저장하기 위해 string 이라는 데이터 타입을 사용한다. 이 string 데이터를 다루는데 있어 특별히 유의해야 할점은 없어보이지만, 자바
inpa.tistory.com
C언어 메모리 구조
'JAVA' 카테고리의 다른 글
[JAVA] 직렬화, 역직렬화 개념 (1) | 2024.10.02 |
---|---|
[JAVA] 큐(Queue), 덱(Deque) 구현체, 메서드 정리 (0) | 2024.09.30 |
[JAVA] comparable, comparator 비교 (0) | 2024.07.03 |
[JAVA] System.in.read() (1) | 2024.06.30 |
[JAVA] delete(), deleteCharAt() (0) | 2024.05.07 |