JDK (Java Development Kit)
- 자바 개발자를 위한 상업용 소프트웨어로 자바 컴파일러 등의 개발 도구와 JRE(Java Runtime Environment) 로 구성된다
JRE(Java Runtime Environment)
- 자바 응용프로그램이 실행될 때 필요한 소프트웨어들로, 개발자가 활용 할 수 있는 java API (API: 이미 컴파일된 다양한 클래스 라이브러리) 와 JVM(Java Virtual Machine: 자바 가상 기계)을 포함한다.
개발자가 아닌 일반 사용자의 경우 JRE만 필요하며, JRE만 따로 다운받을 수 있다.
++ Java는 플랫폼에 독립적으로 설계되었다
--한 번 작성되고 컴파일된 java code는 운영체제나 CPU 등 플랫폼에 상관없이 자바 가상 기계(JVM) 만 있으면 어느 컴퓨터에서든 동일하게 실행된다 => 이를 WORA (Write Once Run Anywhere)라고 한다
+++ 플랫폼 독립성을 실현 가능하게 해준것이 JVM과 Bytecode
--- Bytecode는 자바 컴파일러가 자바 소스 프로그램을 컴파일한 일종의 기계어로, JVM에 의해 실행되는 binary code다. CPU에 의해 직접 실행되는 것이 아닌, JVM에 의해 인터프리터 방식으로 한 명령씩 해석되어 실행된다.
자바 프로그램 입장에서 JVM은 운영체제이자 컴퓨터
-> JVM은 플랫폼에 적합하게, 서로 다르게 구현되므로 플랫폼에 종속적이다. BUT 모두 동일한 자바 프로그램에게 동일한 인터페이스와 실행 환경을 제공
'의문점 공부하기 > 📌 Java' 카테고리의 다른 글
📌 자바에서 문자열을 조작하는 클래스는 무엇이 있을까? 각 클래스의 차이점은? (0) | 2023.06.07 |
---|---|
📌 자바에서 Math.round(-1.5)는 무엇을 의미할까? (0) | 2023.06.05 |
📌 Java에서 final의 기능은 무엇인가? (0) | 2023.06.02 |
📌 두 객체가 동일한 hashCode를 가지면 Equals()가 참이어야 한다?! (0) | 2023.06.01 |
📌 ==와 equals의 차이점은 무엇일까? (2) | 2023.05.31 |