2025. 3. 26. 18:10ㆍJAVA/JAVA 실행 원리
🌈 JAVA란?
JAVA는 오라클(Oracle)이 관리하는 범용 프로그래밍 언어
JAVA는 특정 CPU, OS 종속되지 않고 자신의 비즈니스에 맞게 자유롭게 만들어주는 플렛폼
🌂 Java의 핵심 특징
- 플랫폼 독립성
- 객체 지향 프로그래밍 지원
- 자동 메모리 관리
- 멀티스레딩 지원
- 강력한 보안 및 네트워크 기능 제공
1. 플랫폼 독립성
자바 프로그램은 JVM(Java Virtual Machine)에서 실행되므로, 운영체제에 관계없이 실행 가능
▶ Windows, Mac, Linux에서도 동일한 코드 사용 가능
2. 객체 지향 프로그래밍(OOP)
자바는 객체(Object)를 기반으로 프로그램을 설계하는 객체 지향 프로그래밍 언어
3. 자동 메모리 관리
C++와 달리 자바는 가비지 컬렉터가 메모리를 자동으로 관리
4. 멀티스레딩(Multi threading) 지원
자바는 멀티스레딩을 기본적으로 지원하여 동시에 여러 작업을 수행 가능
5. 강력한 보안 및 네트워크 기능
보안 : JVM이 애플리케이션을 보호하며, 바이트코드 검증을 통해 보안 위협 차단네트워크 기능 : 자바는 Socket, URLConnection 등 네트워크 통신을 위한 API를 제공
🌂 Java의 주요 구성 요소
| 구성 요소 | 설명 |
| JVM (Java Virtual Machine) | 바이트코드를 실행하는 가상 머신 |
| JRE (Java Runtime Environment) | JVM + 기본 라이브러리 (실행 환) |
| JDK (Java Development Kit) | JRE + 개발 도구 (컴파일러, 디버거 등) |
| JIT (Just-In-Time) Compiler | 바이트코드를 네이티브 코드로 변환하여 속도 향상 |
☁️ JVM (Java Virtual Machine)
JVM은 Java 프로그램을 실행하는 가상 머신(소프트웨어 기반 CPU)
Java 코드를 운영체제(OS)와 관계없이 실행할 수 있도록 해주며,자바의 핵심 개념인 플렛폼 독립성을 가능하게 한다.
💧 JVM의 역할
- Java 코드를 바이트코드( 📄 .class)로 실행
- 운영체제(OS)와 무관하게 동일한 동작 보장
- 자동 메모리 관리(Garbage Collection, GC) 수행
- 보안 검증 및 예외 처리 지원
- 최적화된 실행 (JIT 컴파일러 사용)
💧 실행과정
예시
1. Java 파일 작성
> HelloWorld.java
2. 컴파일 (javac HelloWorld.java)
> 바이트코드 생성(HelloWorld.class)
3. JVM이 실행 (java HelloWorld)
> 바이트코드를 해석하여 실행
☁️ JRE (Java Runtime Environment)
JRE는 Java 프로그램을 실행하는 데 필요한 환경
즉, JVM + 필수 라이브러리(Java API)로 구성되어 있으며,
Java 애플리케이션을 실행할 수 있도록 지원
💧 JRE의 역할
- JVM을 포함하여 Java 바이트코드 실행
- Java 표준 라이브러리 (Java API) 제공
- Garbage Collection(GC) 및 메모리 관리 지원
- Java 프로그램이 OS와 상효작용하도록 지원
☁️ JDK (Java Development Kit)
JDK는 Java 애플리케이션을 개발하고 실행하는 데 필요한 개발 도구 모음
JDK에는 JRE + 개발 도구(컴파일러, 디버거, Javadoc 등)가 포함되어 있다.Java 프로그램을 작성, 컴파일, 디버깅, 실행할 수 있도록 지원
☁️ JIT (Just-In-Time) Compiler
JIT 컴파일러는 java 프로그램 실행 속도를 최적화하는 기술
바이트코드를 네이티브 코드(기계어)로 변환하여 실행 속도를 높이는 역할
즉, JIT는 실행 중에 바이트코드를 네이티브 코드로 변환하는 컴파일러
- 일반적인 인터프리터 방식보다 빠름
- 반복 실행되는 코드의 성능 향상
- JVM 내부에서 자동으로 동작
💧 JVM, JRE, JDK 차이점 💧
| 구성 요소 | JVM | JRE | JDK |
| Java 프로그램 실행 가능 | ✅ | ✅ | ✅ |
| Java 프로그램 개발 가능 | ❌ | ❌ | ✅ |
| 컴파일러 포함 (javac) | ❌ | ❌ | ✅ |
| 디버거 (jab) 포함 | ❌ | ❌ | ✅ |
| Java API 포함 | ❌ | ✅ | ✅ |
'JAVA > JAVA 실행 원리' 카테고리의 다른 글
| 2의 보수 (0) | 2025.04.16 |
|---|---|
| JVM(자바 가상 머신) (0) | 2025.03.28 |
| 컴파일러(Compiler) (0) | 2025.03.28 |
| STS4 (IDE, 통합 개발 환경) 사용 시 편리함 (0) | 2025.03.25 |
| Java 설치 방법 (0) | 2025.03.25 |