[Java 프로그래밍] JDK,JVM,JRE

허민엽·2023년 12월 30일
0

Java 프로그래밍

목록 보기
1/1

공부하는 중이라 부정확하고 부족한 지식일 수있습니다! 댓글로 지적 부탁드립니다!


JVM,JRE,JDK

  • 자바 가상 머신(JVM, Java Virtual Machine)
  • 자바 런타임 환경(JRE, Java Runtime Environment)
  • 자바 개발 키트(JDK, Java Development Kit)

Java 프로그램 실행

  • Java 프로그램 실행 = JVM + JRE

JVM

  • Java 는 OS에 독립적
    OS에 독립적 실행이 되기 위해선 OS 위에서 Java 를 실행시킬 무언가가 필요 = JVM

JRE

  • 컴파일 된 Java 프로그램을 실행하는데 필요한 패키지
    JREJVM + 자바 클래서 라이브러리(Java Class Library) 등으로 구성

Java 프로그램 개발

  • Java 프로그램 실행 & 개발 = JDK(= JVM + JRE)

JVM

  • Java를 실행하고 개발하기 위해 필요한 모든 기능을 갖춘 Java용 소프트웨어 개발 키트(SDK, Software Development Kit)
  • JDK = JVM + JRE
  • 컴파일러, 디버그 도구 등이 포함

컴파일

  • 자바 소스 파일
    프로그래밍 언어로 작성된 파일
    확장자 명은 .java

  • 컴파일
    소스 파일을 컴퓨터가 이해할 수 있는 기계어로 만드는 과정

  • 클래스 파일(바이트코드 파일)
    소스 파일을 컴파일해도 바로 기계어로 변환 x
    컴파일된 소스 파일은 JVM이 인식할 수 있는 클래스 파일(바이트코드 파일)로 변환
    확장자 명은 .class

  • 기계어 변환
    이후 클래스 파일을 JVM기계어로 변환하여 컴퓨터가 Java 소스 파일을 해석

Java 플랫폼의 독립성(Independency)

  • C/C++ 플랫폼
    종속적(Dependency)
  • 예를 들어, 리눅스 OS + 인텔 CPU를 가진 컴퓨터에서 개발
    1. 리눅스 OS + 인텔 CPU 컴퓨터에서 실행 o
    2. MAC OS 컴퓨터에서 실행 x
    3. Windows OS + 인텔 CPU 컴퓨터에서 실행 x
    4. 리눅스 OS + 임베디드 컴퓨터에서 실행 x
  • 소스를 조금씩 바꿔줘야 하는 경우 ↑
  • 소스를 안 바꾸는 경우라도 다른 플랫폼에서 사용하려면 새로 컴파일 해야 함

  • Java 플랫폼
    독립적(Independency)
  • 예를 들어, 리눅스 OS + 인텔 CPU를 가진 컴퓨터에서 개발
    1. 리눅스 OS + 인텔 CPU 컴퓨터에서 실행 o
    2. MAC OS 컴퓨터에서 실행 0
    3. Windows OS + 인텔 CPU 컴퓨터에서 실행 0
    4. 리눅스 OS + 임베디드 컴퓨터에서 실행 0
  • JVM이 설치된 모든 컴퓨터에서 실행 가능
profile
코딩 날먹하고싶ㄷㅏ!

0개의 댓글