내일배움캠프 D+115: 0809

enyo9rt·2022년 8월 9일

TIL-S

목록 보기
79/79

🎨 JVM

- 메소드 영역(스태틱 영역)
클래스 멤버 변수의 이름, 데이터 타입, 접근 제어자 정보와 같은 각종 필드 정보들과 메서드 정보, 데이터 Type 정보, Constant Pool(상수풀), static 변수, final class 등이 생성되는 영역
간략하게는 static한 것들이 올라간다고 생각하면 된다.

- 스택 영역
지역변수, 파라미터, 리턴 값, 연산에 사용되는 임시 값 등이 생성되는 영역(8가지 primitive)

- PC 레지스터 (PC Register)
Thread가 생성될 때마다 생성되는 영역으로 프로그램 카운터, 즉 현재 스레드가 실행되는 부분의 주소와 명령을 저장하고 있는 영역

- 네이티브 메소드 스택 (Native Method Stack)
자바 이외의 언어(C, C++, 어셈블리 등)로 작성된 네이티브 코드를 실행할 때 사용되는 메모리 영역

- 힙 영역

낮은 주소에서 높은 주소로 할당(일반적인 os의 경우)

힙 영역의 크기는 메모리의 1/64 이고, 최대 1/4을 차지한다.
PermGen이 힙 영역에 포함되어 메모리 제한이 있었는데, 8버전에서 Metaspace 영역으로 변경해 메모리 제한이 사라졌다.
new 하면 다 Eden 공간으로 간다. 자바는 C언어와 달리 직접 메모리 할당, 회수를 하지 않는다. 영역이 이동되며 회수하는 과정을 거치게 된다.

- Eden
자바 객체가 생성되자마자 저장되고, 생긴지 얼마 안되는 객체가 저장되는 공간

- Survivor
Eden 영역 데이터가 어느정도 쌓이게 되면 참조정도에 따라 Servivor의 빈 공간으로 이동되거나 회수

- Old (Tenured Generation)
Young Generation(Eden+Servivor) 영역이 차게 되면 또 참조정도에 따라 Old영역으로 이동 되게 되거나 회수

SAVE 💾

오전에는 자바 알고리즘 특강이 아닌 JVM 관련 특강이 진행되었다. 튜터님 말씀대로 알고리즘 특강보다 더 필요하고 도움이 되는 내용이었다. 자바의 정석을 배우면서 클래스는 스태틱 영역? 메소드 영역에 저장되고, 인스턴스는 힙 영역에 저장된다는 아주 기본적인 것만 어렴풋이 알았는데, 이번 특강을 통해 좀 더 자세히 알게 됐다.

일단 특강 내용의 일부 정리를 했는데 용어도 조금 낯설고 이해가 어려운 부분도 있어서... 추가 자료를 찾아보면서 정리를 할 필요성을 느꼈다. 책도 다시 펼쳐봐야할 것 같다.

그리고... 이번이 벌써 내일배움캠프 타이틀을 달고 적는 마지막 TIL이다.
캠프에 처음 들어와서, TIL과 WIL을 써내야한다고 들었을 때 든 생각은 '그게 뭐지?' 였다.
그렇게 무지했던 게 무색하게 수많은 TIL이 쌓이고 쌓였다.
그냥 두면 잊혀 지나갈 감정들이 짧게나마 글로 기록되어, 내 지난 캠프 생활을 반추할 수 있도록 돕는 소중한 발자취가 되었다.
매일 그리고 매주 독려해 주시던 매니저님께 무한 감사를 드리며, 여전히 내일도 나는 배울 것이고 쓸 것임을 스스로 다짐해본다!

1개의 댓글

comment-user-thumbnail
2022년 8월 10일

TIL 모범생 중 하나셨던 예진님!! 벌써 마지막이라니ㅠㅠ 그간 소소한 기록들이 쌓여서 예진님이 멋진 개발자가 되는데 엄청난 밑거름이 될 거예요! 제 잔소리가 귀찮으셨을 수도 있는데 독려라고 알아주셔서 너무 감사하네용 ㅎㅎ 4개월 간 정말 고생 많았고 앞으로도 더더 성장하는 예진님이 되시길! 화이팅

답글 달기