[250123] TIL
오늘 한 것
카카오테크 강의
Java의 특징
- WORA(Write Once, Run Anywhere) 원칙을 따름
- JVM을 통해 플랫폼 독립성 보장
- 자동 메모리 관리(Garbage Collection) 지원
Java 개발 환경
JDK (Java Development Kit)
- 자바 개발에 필요한 모든 도구를 포함
- 컴파일러(javac)를 통해 소스코드를 바이트코드로 변환
- 디버거, JavaDoc 등 개발 도구 포함
JRE (Java Runtime Environment)
- 자바 프로그램 실행을 위한 환경
- JVM과 필요한 라이브러리 포함
- JDK에 포함되어 있으며, 독립적으로도 설치 가능
JVM 아키텍처
1. ClassLoader
- 바이트코드(.class)를 JVM으로 로딩
- 로딩 → 링크 → 초기화 과정을 수행
2. Runtime Data Area
메모리 구조
- Heap: 객체와 배열이 저장되는 영역, GC의 대상
- Stack: 메서드 호출과 지역 변수 저장
- Method Area: 클래스 정보, 상수, static 변수 저장
- PC Register: 스레드의 실행 위치 관리
- Native Method Area: 네이티브 코드 실행 영역
3. Execution Engine
구성 요소
- 인터프리터: 바이트코드를 한 줄씩 해석하여 실행
- JIT 컴파일러: 자주 사용되는 코드를 기계어로 미리 컴파일
- 가비지 컬렉터: 미사용 객체 자동 메모리 해제
Java 실행 프로세스
- 소스코드(.java) 작성
- 컴파일러(javac)가 바이트코드(.class) 생성
- ClassLoader가 바이트코드를 JVM에 로드
- Execution Engine이 바이트코드를 기계어로 변환하여 실행
- Runtime Data Area에서 필요한 데이터 관리
주요 특징
- Java는 컴파일과 인터프리팅을 모두 사용
- JIT 컴파일러로 실행 성능 최적화
- GC를 통한 자동 메모리 관리
- 멀티스레드 지원
기타
Leave a comment