728x90
자바 가상 머신(Java Virtual Machine, JVM)은 자바로 개발한 프로그램을 컴파일하여 만들어지는 바이트코드를 실행시키기 위한 가상 머신입니다. 자바 가상 머신 대신 JVM이라고 줄여서 언급하겠습니다.
Write Once, Run Anywere
JVM은 사용 중인 운영체제와 관계없이 그 안에서 실행될 프로그램을 위한 환경을 조성합니다. 이게 무슨 의미냐면 제가 구구단을 출력하는 프로그램을 만들었다고 가정할게요. 저는 Windows 10 운영체제를 사용하고 있는데, Linux나 Mac을 쓰는 사람들에게 배포를 해도 정상적으로 동작합니다. 즉, 운영체제에 독립적으로 실행 가능한 환경을 제공해줍니다.
이게 가능한 이유는 JRE라는 친구가 있기 때문입니다. 각 운영체제마다 적절한 JRE가 설치되어 있다면 기종에 따라 영향 받지 않도록 JVM을 이용하여 가상 컴퓨터 환경을 구축하고 자바 코드를 실행할 수 있습니다.
메모리 관리
JVM의 또 다른 장점은 메모리 관리를 알아서 해준다는 점입니다. 생각해보니 C++을 배울때는 생성자 - 소멸자, 동적 할당 - 메모리 해제를 다룬 기억이 있습니다. 그러나 자바는 어라..?? 필수로 배운 기억은 없습니다. 왜 그랬을까요??
그 이유는 가비지 콜렉션에 의해 메모리 관리가 자동으로 되기 때문입니다. 사용 중이지 않은 메모리를 알아서 찾아서 해제해주기에 개발자가 따로 신경 쓰지 않아도 됩니다.
출처
책 - 자바의 정석
728x90
'Java' 카테고리의 다른 글
[JAVA] JVM 구성 요소 (0) | 2021.03.29 |
---|---|
[java] JIT 컴파일러란? (0) | 2021.03.25 |
바이트 코드란? (0) | 2021.03.23 |
자바 산술변환 (0) | 2021.03.11 |
[java] 변수 (0) | 2021.03.10 |