본문 바로가기
Tech/Java

JVM(Java Virtual Machine)

by Dog발자. 2020. 5. 18.
반응형

https://www.geekboots.com/story/what-is-jvm-how-does-it-work

- jvm 이란

Java Byte Code를 OS에 맞게 해석 해주는 역할을 합니다.

- Java compiler

.java 파일을 .class 라는 Java byte code로 변환

- Byte Code

고급 언어로 작성된 소스 코드를 가상머신이 이해할 수 있는 중간 코드로 컴파일한 것을 말한다.

(Byte Code 는 기계어가 아니기 때문에OS에서 바로 실행되지 않습니다.)

 

※ 기계어 : CPU가 직접 해독하고 실행할 수 있는 비트 단위로 쓰인 컴퓨터 언어를 통틀어 일컫는다.

 

- jvm장점

위에서 말한 것처럼 jvm만 어떠한 os 위에 올라갔다면 java 코드를 실행 시킬 수 있다.

 

- jvm 구조

: Class Loader

 RunTime 시점에 클래스를 로딩하게 해주며 클래스의 인스턴스를 생성하면 클래스 로더를 통해 메모리에 로드하게 됩니다.

 

: Runtime Data Areas

 JVM이 프로그램을 수행하기 위해 OS로 부터 별도로 할당 받은 메모리 공간

 

: Execution Engine

 Load된 Class의 ByteCode를 실행하는 Runtime Module이 바로 Execution Engine입니다. Class Loader를 통해 JVM 내의 Runtime Data Areas 에 배치된 바이트 코드는 Executin Engine에 의해 실행되며, 실행 엔진은 자바 바이트 코드를 명령어 단위로 읽어서 실행합니다.

 

※ https://www.ibm.com/developerworks/library/it-haggar_bytecode/

반응형

댓글