JVM 이란
개요
Java Virtual Machine 의 줄임말로써 직역하면 자바 가상 머신이다.
자바는 초기 설계단계에서 어느 환경에서 동일하게 실행될 수 있는 것을 목표로 제작하였는데, 이를 위해서 JVM이 탄생하게 되었다.
JAVA의 실행 과정
그렇다면 JVM이 어느 부분에서 사용될까? 아래에 자바의 실행 과정을 그림으로 표현하였다.
간단하게 보면 자바는 자바 코드를 먼저 컴파일을 통해 바이트 코드로 바꾸고 해당 코드를 JVM이 운영체제에 맞게끔 실행시켜주는 2단계 구조를 가지고 있다.
그래서 어느 환경이든 JVM만 설치된다면 동일하게 실행이 되어 같은 결과를 확인할 수 있다.
요약
그래서 쉽게 이야기하면 JVM은 바이트 코드로 변환된 자바 코드를 운영체제 환경에 맞게 실행시켜주는 도구 정도로 이해할 수 있다.
GC 란
개요
GC는 Garbage Collection를 의미한다.
메모리 관리 방법 중의 하나로써 프로그램이 동적으로 할당했던 메모리 영역 중에서 더 이상 사용할 수 없게 된 영역을 해제하는 기능이다.
여기서 말하는 더 이상 사용할 수 없게 된 영역이란 어떤 변수도 가리키지 않게 된 영역을 의미한다.
GC의 대상
어떤 변수도 가리키지 않게 된 영역의 예시로 아래 코드를 가져왔다.
public class Main {
public static void main(String[] args) {
Me me = new Me("ToLoad", "나다 !!");
me = new Me("ThreeLoad", "이번에 나다 !!");
}
}
해당 코드를 보면 me는 처음에 "ToLoad" 를 가리키고 있다가 아래줄에서 다시 새로운 객체를 참조하게 되었다.
그러면 기존의 "ToLoad" 는 아무도 참조하고 있지 않은 객체가 되면서 GC의 처리 대상이 된다.
장단점
자바에는 이와 같은 GC가 있기 때문에 메모리의 누수나 해제에 대해 크게 신경 쓰지 않아도 된다.
하지만 GC가 동작되는 동안에는 JVM의 다른 동작들이 잠깐 멈추기 때문에 오버헤드가 발생하고 이로 인해 GC가 너무 자주 실행되면 소프트웨어 성능이 하락하기도 한다.
오늘은 JVM과 GC를 간단하게 알아보았다.
다른 글에서 JVM과 GC를 각각 상세하게 다뤄보려고 한다.
다음에 봐요 !!
'Computer Science > JAVA' 카테고리의 다른 글
자바 컬렉션 프레임워크(Java Collection Framework) 중 맵(MAP) 정리 (0) | 2022.04.18 |
---|---|
자바 컬렉션 프레임워크(Java Collection Framework) 중 셋(SET) 정리 (0) | 2022.04.15 |
자바 컬렉션 프레임워크(Java Collection Framework) 중 리스트(List) 정리 (0) | 2022.04.13 |
[JAVA] 객체 지향 프로그래밍(Object Oriented Programing) (0) | 2022.01.11 |
JAVA의 장점과 단점 (1) | 2021.12.20 |