개발지식 먹는 하마 님의 블로그

JAVA의 구조 본문

Java

JAVA의 구조

devhippo 2025. 2. 24. 19:50

JDK (Java Development Kit)

자바 프로그램을 개발할 때 필요한 개발 도구 모음

JDK (Java Development Kit)  ← Java 개발에 필요한 모든 것 포함
 ├── JRE (Java Runtime Environment)  ← Java 실행 환경
 │   ├── JVM (Java Virtual Machine)  ← 바이트코드 실행
 │   ├── Java 라이브러리 (rt.jar 등)  ← 필수 API 제공 (java.lang, java.util 등)
 │   ├── 클래스 로더 (Class Loader)  ← .class 파일 로드
 │
 ├── Javac (Java Compiler)  ← .java → .class 변환
 ├── 기타 개발 도구 (디버거, Javadoc 생성기, JAR 도구 등)

 

Java는 Javac와 JVM을 통해서 플랫폼의 독립성을 보장받는다.

Javac 자바 컴파일러

Java 파일을 바이트코드(.class)로 변환한다.
*바이트코드 : JVM이 해석할 수 있는 코드

JVM 자바 가상 머신

바이트코드를 해석하고 실행한다.

JVM 메모리 구조

JVM 메모리는 위의 그림과 같이 크게 3가지로 구성된다.

Method Area

  • 모든 객체가 공유하는 클래스 정보 저장공간
  • 작성했던 모든 파일의 데이터가 저장된다.
  • 프로그램 실행 시점에 한 번만 저장된다.
  • static으로 선언된 변수와 메서드가 위치

Stack Area

  • 메서드 실행 시 사용되는 공간
  • 메서드가 호출될 때마다 Stack영역에 메모리가 할당된다.

Heap Area 

  • 객체가 생성되어 저장되는 공간
  • new 키워드로 생성된 객체가 저장된다.
  • Heap 영역의 객체가 필요 없어지면 가비지 컬렉터가 이를 정리할 수 있다.

'Java' 카테고리의 다른 글

Java - 람다(Lambda) & 스트림(Stream)  (0) 2025.02.25
Java - 제네릭 (Generic)  (0) 2025.02.25
Java - 네트워크 프로그래밍  (0) 2025.02.09
Java - 스레드(Thread)  (0) 2025.02.07
Java - 배열과 리스트  (1) 2025.02.06