JVM

Sorbet·2021년 2월 15일
0

2021_CSHSL

목록 보기
1/4

최초 : Original from Honux




JVM이란?

: Java Virtual Machine

  • JVM : 콤퓨터에서 자바프로그램이 동작할 수 있도록 구현(implementation)한 가상머신
    • 가상머신(virtual machine) : ??? 실제기계는 아닌데 기계만큼 복잡해
    • 프로그래밍 언어를 만들때 Spec과implementation 두가지가 있는데
      • Spec : 명세서, 설계자의 의도, 설계도
      • implementation : spec대로 동작할 수 있도록 실제로 개발해놓은 결과물

  • 자바 언어의 포인트
    • 자바 애플릿의 성공
      : 모든 컴퓨터에서 어떤 환경에서라도 동일하게 실행할 수 있게
    • 멀티쓰레드의 버그와 어려움
      : 자바는 언어차원에서 멀티쓰레드를 지원하는데 이게 참 어렵고 버그를 많이 유발한다
    • 풋프린트(메모리 풋프린트)
      : 원래 자바가 가전제품에 넣으려고 만든 언어인데 가전제품에는 안들어갔다. 가전제품같이 메모리풋프린트에 여유가 없는 상황에는 잘 안맞고
      : 자바는 메모리 풋프린트가 여유있는 서버 어플리케이션 용도로 매우 좋은 언어다!

JVM 구성요소

: JVM 을 이루는 3대 구성요소
1.클래스로더 서브시스템
2.런타임 데이터 에이리어
3.엑시큐션 엔진(실행엔진)

  • 어려울꺼 없다 그냥 딱 3단계로 구분된다

1.클래스로더 서브시스템

  • 자바파일을 컴파일을 하면 자바-바이트코드가 들어있음
  • JRE JDK 차이 : 단순 배포&실행용인지, 개발자용도냐의 차이
  • 클래스 로더 3단계 : 실행하는 순간 메모리에 로딩한다
    • 로링
    • 링킹
    • 이니셜라이제이션

2.런타임 데이터 에이리어

  • 메소드 영역 : 코드영역+데이터영역

3.익시큐션 엔진(실행엔진

profile
Sorbet is good...!

0개의 댓글