개발지식 먹는 하마 님의 블로그
JAVA의 구조 본문
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 메모리는 위의 그림과 같이 크게 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 |