JVM 2

[Java] JVM 구조

클래스 로더 시스템 .class 파일에서 바이트 코드를 읽고 메모리에 저장 로딩 : 클래스를 읽어오는 과정 링크 : 레퍼런스를 연결하는 과정 초기화 : static 값 초기화 및 변수에 할당 메모리 메서드 영역에는 클래스 수준의 정보(클래스 이름, 부모 클래스 이름, 메서드, 변수) 저장 힙 영역에는 객체를 저장(공유 자원) 스택 영역에는 스레드마다 런타임 스택을 만들고, 그 안에 메서드 호출을 스택 프레임이라 부르는 블록으로 적재 스레드 종료 시 런타임 스택도 소멸 PC(Program Counter) 레지스터, 네이티브 메서드 스택 : 스레드마다 독립적으로 소유 실행 엔진 인터프리터 : 바이트 코드를 한 줄씩 실행 JIT(Just-In-Time) 컴파일러 : 인터프리터의 효율을 높이기 위해 사용 인터프..

Java 2022.02.15

[Java] 자바, JVM, JDK, JRE

JVM (Java Virtual Machine) 자바 가상 머신으로서, 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행 바이트 코드를 실행하는 표준이자 구현체(특정 밴더가 구현한 JVM) 특정 플랫폼에 종속적 JRE (Java Runtime Environment) : JVM + 라이브러리 자바 어플리케이션을 실행할 수 있도록 구성된 배포판 JVM과 핵심 라이브러리 및 자바 런타임 환경에서 사용하는 프로퍼티 세팅이나 리소스 파일을 포함 JDK (Java Development Kit) : JRE + 개발 툴 JRE + 개발에 필요한 툴 소스 코드를 작성할 때 사용하는 자바 언어는 플랫폼에 독립적 오라클은 자바 11부터 JDK만 제공하며 JRE는 제공하..

Java 2022.02.15