JVM 3

[백엔드 면접 질문 준비] (6) JVM이란 무엇인가?

JVM이란?JVM(Java Virtual Machine)은 자바 프로그램을 실행하기 위한 가상 머신(Virtual Machine)입니다. 이름 그대로 물리적인 컴퓨터가 아니라, 프로그램 위에서 동작하는 소프트웨어 기반의 컴퓨터라고 이해할 수 있습니다. 자바로 작성된 코드는 .java 파일로 저장된 뒤, 자바 컴파일러(javac)를 통해 바이트코드(.class)로 변환됩니다. 이 바이트코드는 OS나 하드웨어와 무관한 중간 형태의 코드이며, JVM이 이 바이트코드를 해석하거나 실행합니다. 즉, JVM은 자바 바이트코드를 받아서 실제로 프로그램이 동작하도록 만들어주는 역할을 합니다. 왜 JVM이 필요한가?JVM의 가장 큰 특징은 운영체제(OS)에 독립적이라는 점입니다. 자바는 "한 번 작성하면, 어디서나 실행..

Interview Question 2025.04.05

[JAVA] Heap 메모리 구조와 Garbage Collection

자바 프로그램이 실행되면 JVM은 OS로부터 메모리를 할당받고, 그 메모리를 용도에 따라서 여러 영역으로 나누어 관리하한다. JVM의 메모리 공간은 크게 Static 영역, Stack영역, Heap 영역으로 구분되는데 Heap영역에 대해서 자세히 알아보도록 하자.1. Heap 영역JVM이 관리하는 프로그램 상에서 데이터를 저장하기 위해 런타임 시 동적으로 할당하여 사용하는 영역이다.참조형 데이터 타입을 갖는다 : 값이 저장되어 있는 곳의 주소값을 저장하는 공간이다.클래스인터페이스배열열거Heap 영역은 Stack 영역과 다르게 보관되는 메모리가 호출이 끝나더라도 삭제되지 않고 유지된다.stack은 스레드 갯수마다 각각 생성되지만, heap은 몇개의 스레드가 존재하든 상관없이 단 하나의 Heap 영역만 존재..

JAVA 2024.12.08

[JAVA] JVM 메모리 사용 영역

JAVA 코드가 어떻게 실행되는지, 그 데이터들이 어떤곳에 저장되는지 알기 위해서는 JVM을 먼저 이해해야 한다. 1. JVM(JAVA Virtual Machine)위 그림은 Java 코드가 실행되는 과정이다.Java 코드는 Java Compiler를 통해 바이트코드(.class)를 생성한다.바이트코드(.class)를 JVM에 있는 Class Loader에 전달되고 JVM이 프로그램을 실행한다.JVM이 프로그램을 실행할 때, 필요한 메모리들은 어디에 저장되고 어떤 구조로 생겼는지 알아보자.2. 메모리 사용 영역JVM 내의 메모리 영역은 JVM Run-time Data Area라고 한다. 크게 5가지 영역으로 나뉘는데, 메소드 영역, 힙 영역, 스택 영역, PC 레지스터 영역, 네이티브 메소드 스택 영역으..

JAVA 2024.11.26