한 번 쓰고 모든 곳에서 실행한다

(Write Once, Run Anywhere => WORA)

Java의 원칙

자바 프로그래밍 3개 핵심 기술 패키지

                    <JDK JRE JVM>

1. JDK (Java Development Kit) :

JAVA 프로그램을 작성하는데 필요한 개발 키트(Windows,MAC 및 Linux용 버전이 있다)
기본적으로 JAVA 소스 코드, 작성한 코드를 가져와 JRE 및 JVM 이 실행할 수 있는 형식을 변환하는 도구이다.
JDK는 JRE를 포함하고 있고, JRE는 JVM을 포함하고 있어서 JDK를 설치하면 JRE, JVM이 자동으로 다 설치된다.

JDK 구성(임의선정)역할
apt어노테이션 툴
appletviewer웹브라우저 없이 자바 애플릿을 실행하고 디버깅하기 위한 툴
javac자바 컴파일러 (자바 소스파일 => 바이트코드로 변환)
javajavac가 만든 클래스 파일을 해석 및 실행
jar서로 관련있는 클래스 라이브러리들과 리소스를 하나의 파일로 묶어주는 툴
jab자바 디버깅 툴
JREJava가 동작하는데 필요한 JVM, 라이브러리 등 다양한 파일들을 포함한다. Java를 실행하려면 JRE를 설치해야함
JVMJava가 실제로 동작하는 가상 환경. 이 JVM덕분에 하나의 Java프로젝트를 개발해도 여러 환경에서 원활하게 실행시킬 수 있음

2. JRE(Java Runtime Environment) :

JAVA 프로그램을 실행하는 데 사용되는데 JAVA 와 함께 제공되는 다양한 라이브러리 세트.
JRE 작업에는 JVM이 포함되고 또한 자바 클래스 로더(Java class loader)를 포함하고 있어서 클래스 라이브러리를 통해 작성한 자바 코드를 라이브러리와 결합한 후 JVM에 넘겨 실행시켜서 JVM이 원할하게 잘 작동할 수 있도록 환경을 맞춰주는 역할을 한다.

ClassLoader: '.class' 바이트 코드를 읽어 들여 class 객체를 생성하는 역할을 담당한다
즉, 클래스가 요청될 때 class파일로부터 바이트 코드를 읽어 메모리로 로딩하는 역할


3. JVM (java Virtual Machine) :

JRE 의 일부이며 추상 컴퓨터 머신이다.
JRE로 실제로 프로그램을 실행할 때 이 가상머신이 실행되는데 C/C++같은 언어는 컴파일 플랫폼과 타겟플랫폼이 다를 경우 프로그램이 동작하지 않는데 우리의 자바 소스파일을 <JAVA 바이트 코드>로 변환하고 JVM으로 실행시키면 어떤 플랫폼이든 다시 컴파일할 필요 없이 실행 시킬 수 있다, 하지만 실행하려면 그 플랫폼에 맞는 JVM 이 설치되어 있어야 한다

  • 추상머신:기계의 기능을 알고 있기 때문에 어떠한 입력을 주면 어떠한 출력이 나오는지는 알 수 있다
  • 환경, 플랫폼 = 운영체제 + CPU 아키텍처
  • 자바 바이트 코드(Java bytecode) 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다.
    자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있음.
  • Compiler (javac)
    인간 코드 -> byteCode 변환(컴퓨터 언어)

<출처>

고랭이네 [Java] JDK? JRE? JVM?
JDK, JRE, JVM: What Are They and What Are Their Differences?
[10분 테코톡] 🎅무민의 JVM Stack & Heap
TCP SHCOOL.com 자바프로그래밍

profile
"한 명이 걷는 천 걸음 보다 천 명이 함께 걷는 한 걸음이 성공의 시작이고 완성이다"

0개의 댓글