JAVA

2025. 3. 26. 18:10JAVA/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의 역할

  1. Java 코드를 바이트코드( 📄 .class)로 실행
  2. 운영체제(OS)와 무관하게 동일한 동작 보장
  3. 자동 메모리 관리(Garbage Collection, GC) 수행
  4. 보안 검증 및 예외 처리 지원
  5. 최적화된 실행 (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의 역할

  1. JVM을 포함하여 Java 바이트코드 실행
  2. Java 표준 라이브러리 (Java API) 제공
  3. Garbage Collection(GC) 및 메모리 관리 지원
  4. 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