1. JVM 원리 및 실습
- 하드웨어, OS, JVM을 연결해서 생각
- Java 실행 과정 : HDD(SSD) -> RAM -> 실행준비 완료 -> CPU
-Java 램 할당하기
-> 실행 옵션->실행 구성 수정 ->옵션수정->VM 옵션추가 -> 옵션 추가
-Xmx1M //최대 힙 크기 1mb 할당
//Error occurred during initialization of VM
//Too small maximum heap
-Xmx10M //최대 힙 크기 10mb 할당
-> 정상 실행
- 런타임에러 : 0 나누기 오류, 널 참조 오류, 메모리 부족 오류 등 // 실행시에 알게 됨, 최대한 피해야함
- 컴파일타임 에러 : Syntax Error, Type check Error 등 // IDE에서 많이 잡아줌
출처 입력
-IntelliJ profiler : Java 애플리케이션 문제진단 & 성능 측정 도구
-IntelliJ Debugger : 버그와 에러를 찾고 수정하는 툴
2. JVM 구성요소
- 클래스로더
- Loading : 클래스파일을 가져와서 JVM의 메모리에 로드한다.
- Linking : 클래스파일을 사용하기 위해검증하는 과정이다. (검증-준비-분석)
- Initialization : 클래스 변수들을 초기화한다.
- JVM 실행 엔진
- Interpreter : 동시통역
- JIT compiler : 반복되는 부분을 저장 (native(machine) code)
->Interpreter와 JIT compiler 를 통해 OS로 전달 후 하드웨어 control
- Garbage Collector
- 필요없는 데이터를 모아 처리
-Xlog:class+init // VM 옵션 변수, 클래스 로더 초기화
-XX:+PrintCompilation // VM 옵션 변수,
3. Runtime area
#슈퍼코딩, #1:1관리형부트캠프, #백엔드, #backend, #백엔드공부, #개발공부, #백엔드개발자 #취준일기, #취준기록, #취뽀, #빡공, #HTML/CSS, #javascript, #react , #java, #spring