카테고리 없음

2024. 7. 8. (월) 슈퍼코딩 부트캠프 Day 31 / 주특기 3주차

태영9922 2024. 7. 8. 13:37

 

1. JVM 원리 및 실습

- 하드웨어, OS, JVM을 연결해서 생각

- Java 실행 과정 : HDD(SSD) -> RAM -> 실행준비 완료 -> CPU

출처 :  https://amanagrawal9999.medium.com/jvm-memory-model-70821e84af4b

 

-Java 램 할당하기

-> 실행 옵션->실행 구성 수정 ->옵션수정->VM 옵션추가 -> 옵션 추가

-Xmx1M //최대 힙 크기 1mb 할당
//Error occurred during initialization of VM
//Too small maximum heap

-Xmx10M //최대 힙 크기 10mb 할당
-> 정상 실행
 

 

 
출처 : https://velog.io/@leeunda/Java-JVM-%EB%8F%99%EC%9E%91%EB%B0%A9%EC%8B%9D-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C

- 런타임에러 : 0 나누기 오류, 널 참조 오류, 메모리 부족 오류 등 // 실행시에 알게 됨, 최대한 피해야함

- 컴파일타임 에러 : Syntax Error, Type check Error 등 // IDE에서 많이 잡아줌

출처 입력

-IntelliJ profiler : Java 애플리케이션 문제진단 & 성능 측정 도구

-IntelliJ Debugger : 버그와 에러를 찾고 수정하는 툴

 

2. JVM 구성요소

출처 : https://velog.io/@leeunda/Java-JVM-%EB%8F%99%EC%9E%91%EB%B0%A9%EC%8B%9D-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C
  • 클래스로더

- 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

 
출처 : https://velog.io/@leeunda/Java-JVM-%EB%8F%99%EC%9E%91%EB%B0%A9%EC%8B%9D-%EA%B5%AC%EC%84%B1%EC%9A%94%EC%86%8C

 

 

 

 

 

 

 

 

 

 

#슈퍼코딩, #1:1관리형부트캠프, #백엔드, #backend, #백엔드공부, #개발공부, #백엔드개발자 #취준일기, #취준기록, #취뽀, #빡공, #HTML/CSS, #javascript, #react , #java, #spring