반응형
- 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/
반응형
'Tech > Java' 카테고리의 다른 글
main(String[] args) 메소드 깊이 있게 알아보자 (4) - main() method (0) | 2020.05.21 |
---|---|
main(String[] args) 메소드 깊이 있게 알아보자 (3) - Return Type (0) | 2020.05.21 |
main(String[] args) 메소드 깊이 있게 알아보자 (2) - static (0) | 2020.05.20 |
main(String[] args) 메소드 깊이 있게 알아보자 (1) - 접근지정자(Access Modifier) (0) | 2020.05.19 |
Java 입문부터 다시 시작 하기 (Hello World) (0) | 2020.05.18 |
댓글