티스토리 뷰

기타

자바 가상머신 JVM

lkh's 2019. 1. 30. 02:02

가상 머신


가상머신이란, 프로그램을 실행하기 위한 물리적 머신을 소프트웨어로 구현한 것을 의미한다. 가상머신은 바이트코드를 실행하고자 하는 모든 하드웨어에 JVM을 

동작시킴으로써 자바 코드를 변경하지 않고도 여러 OS에서 동작할 수 있게 한다.


 - JVM은 스택 기반의 가상머신

 - 심볼릭 레퍼런스 : 클래스 파일은 JVM이 프로그램을 실행할 때 필요한 API를 Link할 수 있도록 심볼릭 레퍼런스를 가진다. 심볼릭 레퍼런스를 런타임 시점에 

                           메모리 상에서 실제로 존재하는 물리적인 주소로 대체하는 Linking 작업이 일어난다.

                           심볼릭 레퍼런스는 참조하는 대상의 이름을 지칭하고, 클래스 파일이 JVM에 올라가게 되면 심볼릭 레펀선스는 실제 메모리 주소가 아닌

                           이름에 맞는 객체의 주소를 찾아서 연결하는 작업을 수행한다. 

 - 기본 자료형을 명확하게 정의함으로써 플랫폼 독릭성 보장 : C++은 플랫폼에 따라 int의 크기가 다르다.


요약하자면, JVM은 스택 기반의 가상머신으로서, 프로그램을 실행하기 위한 물리적 머신을 소프트웨어로 구현한 것을 의미한다. JVM은 플랫폼의 독립성, 

심볼릭 레퍼런스, 가비지 컬렉션이라는 특징을 가지고 있다. 여기서 조금 헷갈리는 부분인 심볼릭 레퍼런스는 프로그램 실행을 위한 API를 클래스가 직접 가지는 것이 아닌 이름을 통한 참조값을 이용해서 실행할 때 메모리 상에서 API를 호출할 수 있도록 이름을 주소로 대체하는 특징을 의미한다... 



공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함