[면접공부] 1. java - jvm공부
- 국비지원 (스파르타)
- 2025. 4. 8. 21:04
반응형
반응형
자바에서 제일 중요하다고 할 수 있는 부분은 어디일까?
바로 JVM이라 생각한다.
아직 완벽하게 그릴수 있는건 아니지만 이제 대충은 설명할 수 있을거 같다.
요게 내가 학습한 이미지다.
가장 어려운건 쓰레드인데 쓰레드는 스택이라는 메모리에 저장이 되어진다.
스택은 메소드나 실행정보가 저장이 되어지는데 쓰레드도 여기에 저장이 되어진다.
그럼 스택이라는 영역은 어디에서 나온 영역인가 바로 JVM의 영역이다. JVM에는 다양한 영역이 존재하는데
스택, PC 레지스터, 네이티브 영역, 힙 영역 이렇게 나눠진다. 자바 8이전에는 클래스정보를 힙메모리에 저장을 시켰었다.
그러다 보니 이 정보들을 GC가 제대로 처리하지 못해 OOM이 자주 발생했다고 한다.
그래서 자바 8이전에는 pagment라는 영역에서 저장을 하고 있었는데 자바8이 되면서 메타스페이스라는 공간으로 옮겨졌다.
여기서 핵심이 있는데 메타스페이스 공간은 힙 영역이 아니다. 바로 네이티브 영역이라는 점인데 네이티브 영역은 메모리를 JVM에서 관리하는것이 아닌 OS측에서 관리가 되어지는거라고 한다. 이렇게해서 OOM은 처리된거 같다. 근데 자바에는 GC라는것이 존재한다.
GC는 객체를 치워주는데 GC는 처음에 시리얼GC, 페러럴GC, G1GC로 발전해왔다. 이사이에 cmsGC라는게 있긴한데 여기에서는 생략한다. GC의 동작방식은 다음과 같다. 마킹하고 스위핑하고 정리하고.. 초반에는 그래도 나름 정리가 잘된거 같은데 후반으로 갈수록 기억이 안다. 그래도 화이팅 해봐야지..!!
반응형
'국비지원 (스파르타)' 카테고리의 다른 글
[면접공부] 자바 - 면접질문(1) (feat.gpt) (1) | 2025.04.10 |
---|---|
[면접공부] java - jvm(2) (1) | 2025.04.10 |
[학습] postgres vs mysql (0) | 2025.04.07 |
[SA문서작성] 3차 프로젝트 (0) | 2025.04.04 |
[기획] 3차 프로젝트 (0) | 2025.04.03 |