JAVA

JVM(Java Virtual Machine: 자바 가상 머신)

icedstone 2025. 3. 13. 18:57
반응형
JVM은 하드웨어 및 운영 체제에 독립적인 실행 환경을 제공하며, 컴파일된 코드의 크기를 줄이고, 악성 프로그램으로부터 사용자를 보호하는 역할을 한다. - Oracle Javadoc

 

JVM이 어떻게 저런걸 가능하게 할까?

C언어의 경우에는 윈도우용 컴파일러, 리눅스용 컴파일러가 각자 컴파일을 진행하여 실행파일을 만들지만 Java의 경우에는 각 환경에 맞는 JVM이 따로 존재하기 때문에 자바 컴파일러(javac)가 번역한 class file을 어느환경에서나 실행이 가능해진다.

 

출처: https://steady-snail.tistory.com/67

 

여기서 만들어진 byte code는 JVM이 실행할 수 있는 추상적인 명령어 집합이므로 기계어보다 간결하다. CPU 명령어, 레지스터 정보 등 다양한 정보를 포함해야하는 기계어보다 컴파일된 코드의 사이즈는 작아진다.

 

이 때, class를 읽어올 때 byte code를 검증하고 메모리관리를 JVM이 직접하기 때문에 사용자가 메모리를 해제하는 과정에서 발생할 수 있는 보안문제를 막을 수 있다. 그 외에도 JVM내 보안 관리자(Java Security Manager)가 있어서 내부적으로 작업을 제한하는게 가능하다. 

 


같이 공부하면 좋은 내용 (관련 내용 작성 예정)

- JVM GC

- JVM 메모리 구조

- JVM 초기화 과정(Loading, Linking, Initialization)


참조

https://docs.oracle.com/javase/specs/

https://steady-snail.tistory.com/67

https://d2.naver.com/helloworld/1230

https://style-tech.tistory.com/22

반응형

'JAVA' 카테고리의 다른 글

JVM 메모리 구조  (0) 2025.04.19
JVM GC(Garbage Collection)  (0) 2025.04.19
JVM 초기화 과정(Loading, Linking, Initialization)  (0) 2025.03.13
String vs StringBuilder vs StringBuffer  (0) 2025.03.12
자바 POJO (Plain Old Java Object)  (1) 2025.03.11