JVM?
JVM은 “Java Virtual Machine”의 약자로, 자바 가상 머신을 의미한다.
JVM은 자바 프로그램의 실행 환경을 제공하며, 자바 언어로 작성된 프로그램을 실행하기 위해 필요한 런타임 환경을 제공한다. 자바를 개발할 때 사용하는 JDK가 JVM환경을 제공해주고 있다.
JVM의 주요기능
- JVM은 자바 컴파일러에 의해 생성한 .class파일을 실행 해준다.
왜 Compile을 하여 .class파일로 만들까?
- 효율적인 실행: JVM이 다양한 운영 체제와 아키텍처에서 실행될 수 있도록 중간 형식으로 변환하여 플랫폼 독립성을 제공하기 위함이다.
- 컴파일 시간 검증: .class파일로 컴파일을 하며 JVM이 소스코드를 분석하여 구문 오류, 타입 오류등을 검출해준다.
- 코드 최적화: 소스코드를 분석하여 실행 시간을 향상시키고 메모리 사용을 최적화 하여 더 효율적인 애플리케이션을 만들 수 있게 도와주기 위함이다.
- 라이브러리 관리: .class파일로 컴파일을 하는 과정에서 라이브러리들의 의존성을 확인하고 적절한 라이브러리를 로드해준다.
- JVM은 자동으로 Garbage Collection을 수행하여 더이상 사용하지 않는 객체들을 자동으로 제거하여 메모리를 관리해줍니다, 또한 Heap영역과 Stack영역을 통해 메모리를 할당하고 관리한다.
Garbage Collection?
프로그래밍 언어 런타임 환경에서 자동적으로 사용되지 않는 동적으로 할당된 메모리를 찾아서 해제하는 메모리 관리 기법이다 프로그램이 실행되는 동안 동적으로 메모리를 할당하게 되는데, 이렇게 할당된 메모리 중에서 더 이상 사용되지 않는 객체들이 존재할 수 있다.
이러한 객체들은 더 이상 필요하지 않으므로 메모리를 점유하고 있지만, 프로그래머가 명시적으로 메모리를 해제하지 않아도 가비지 컬렉션 기능을 통해 자동적으로 해제된다. 이러한 Garbage Collection의 기능으로 인하여 개발자는 메모리 관리를 효율적으로 할수있다. - JVM은 자바 표준 라이브러리 기능을 제공하여 개발자가 다양한 작업을 수행할 수 있도록 지원해준다. 이러한 라이브러리들은 자바 개발을 간편하게 하고, 널리 사용되는 기능들을 제공한다.