본문 바로가기

기타/자바-스프링

jvm 자바 가상 머신

728x90

자바 가상머신은 자바 응용 프로그램을 실행하는 런타임 엔진 역할을 한다.

wora의 핵심.

.java -> .class

https://www.geeksforgeeks.org/jvm-works-jvm-architecture/?ref=lbp

자바 가상 머신의 모습이다.

->로딩

자바 컴파일러에 의해 생성된 .class 파일이 들어오면 class loader가 파일에서 바이너리 데이터를 생성해 메서드 영역에 저장한다.

메소드 영역에는 class, interface, enum의 여부, modifier, 변수, 메서드 정보 등을 저장한다.

다음으로는 힙 메모리에 class 유형의 객체를 생성한다. 이 객체는 java.lang 패키지에 미리 정의된 클래스 유형들이다. 해당 class 객체에는 클래스의 이름, 부모의 이름, 메서드, 변수 등의 정보가 저장된다. .getClass 메서드를 통해 해당 정보를 가져올 수 있다.

모든 .class 파일에 대해서는 하나의 클래스 객체만 생성된다.

->연결

검증, 준비, 해결 과정을 수행한다.

검증은 .class  파일의 정확성을 보장한다. java.lang.VerifyError 에러가 발생할 수 있다.

준비는 jvm 클래스 변수에 대한 메모리를 할당하고 메모리를 기본값으로 초기화한다.

해결

->초기화

 

 

728x90

'기타 > 자바-스프링' 카테고리의 다른 글

maven 다루는 법  (0) 2022.05.19
스프링으로 rest 서비스 구축하기  (1) 2022.05.19
자바 배열 (java array)  (0) 2022.05.19
자바 객체 지향 프로그래밍(OOP)  (0) 2022.05.17
자바 기본 개념  (0) 2022.05.16