JDK, JRE, JVM, Java

TIL·2022년 12월 9일
0

Java (최은빈)

목록 보기
6/27

.java 파일 실행 과정

vi Hello.class  # 컴파일된 .class 값을 컴퓨터가 실행
javap -C Hello.class # 자바 프로파일러가 .class 파일 어떻게 실행시켰는지 확인 가능
# 클래스가 다 읽히고나면 메인 메소드가 마지막으로 읽힘
  1. 컴파일 과정
    .java (개발자 문법)→ 컴파일러 → .class (bytecode, 중간 언어, 모든 OS가 이해)
  • compiler → translator(변환) + optimization(최적화)
  • 에러 없으면 .class(bytecode) 로 변환됨, 컴파일 에러 없다 = 빨간줄은 없다 ≠ 정상 동작
  1. 런타임 과정 (JVM)
    → class loader 가 클래스로 바뀐 파일 로드
    → bytecode verifier 통해 바이트 코드 정상 확인
    → interpreter (중간 코드 → OS에 맞게 변경) / JIT (최적화) 이용해서 (러닝 도구)
    → OS 에서 실행됨



JDK (Java Development Kit)

컴파일러 (javac) + JRE

JRE (Java Runtime Environment)

JVM 실행에 필요한 라이브러리 (~/jdk-11.0.16/lib )

JVM (Java Virtual Machine)

  • 런타임
  • C, C++ 은 OS에 민감, 자바는 OS 가 직접 실행시키지 않고 가상머신이 실행 시킨 후 실행 결과만 OS에 가져가기 때문에 자바는 어떤 OS든 다 실행시킬 수 있음
  • 클래스 로드, GC를 통한 메모리 관리

Java

개발자의 문법
// 아이패드 그림 그려 넣기

참고)

  • Oracle JDK 가 유료화 된다 해서 Open JDK 활발히 개발 중
  • Oracle JDK 11부터 해당 JDK를 이용하여 상용화 (서비스)할 경우 유료로 사용된다는 것



0개의 댓글