Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

개발자일기

JVM 본문

개발

JVM

ka0oll 2020. 3. 21. 00:53

JRE

  • 자바를 실행하기 위한 도구

JDK

  • JRE + 자바개발도구(컴파일러 등등)

메모리구조

heap
  • 객체를 저장
메소드 영역
  • 클래스 정보, static 변수
PC(Program Counter) 레지스터
  • 실행되야될 명령어 위치를 가지고있다. 쓰레드마다 생성
스택
  • 쓰레드마다 스택 생성, 메소드 호출 스택
네이티브 메소드 스택
  • 네이티브를 실행하기 위한 스택

자바 실행 순서

COMPILE
  • bytecode로 컴파일
클래스 로더
  • 필요한 class들을 동적으로 메모리에 올림, class path에 있는것들은 다올린다.
  • 힙에는 Class객체 생성
  • 메소드 영역에는 클래스 정보를
  • class로더 계층형 체이닝, 위에서 찾고 없으면 밑으로 위임
  • 부트스트랩 : java_home/lib 자바 코어 라이브러리
    • 플랫폼(익스텐션) 클래스 로더 : java_home/lib/ext
    • 어플리케이션 클래스 로더 : classpath에 있는 라이브러리
실행엔진
  • 인프리티러를 가지고 네이코드로 변경.
  • JIT 컴파일러 : 인터프리터 효율 높이기 위해 반복되는 바이트코드는 네이티브 코드를 캐시화

'개발' 카테고리의 다른 글

Spring의 핵심 및 기술  (0) 2020.03.21
도커를 이용한 테스트  (0) 2020.03.21
JUnit5을 이용한 단위테스트  (0) 2020.03.21
MSA 마이크로아키텍처 알아보자(1)  (1) 2020.03.21
코드를 조작하는 방법  (0) 2020.03.21
Comments