[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 실행 프로세스

  1. 소스코드(.java) 작성
  2. 컴파일러(javac)가 바이트코드(.class) 생성
  3. ClassLoader가 바이트코드를 JVM에 로드
  4. Execution Engine이 바이트코드를 기계어로 변환하여 실행
  5. Runtime Data Area에서 필요한 데이터 관리

주요 특징

  • Java는 컴파일과 인터프리팅을 모두 사용
  • JIT 컴파일러로 실행 성능 최적화
  • GC를 통한 자동 메모리 관리
  • 멀티스레드 지원

기타

  • 말해보카

Categories:

Updated:

Leave a comment