Java/JVM 3

[JVM] JVM의 구조 - 3. 힙 영역과 GC

2021.11.11 - [Java] - [JVM] JVM의 구조 - 2. 런타임 데이터 영역(RDA) [JVM] JVM의 구조 - 2. 런타임 데이터 영역(RDA) 2021.11.10 - [Java] - [JVM] JVM의 구조 - 1. 클래스 로더 [JVM] JVM의 구조 - 1. 클래스 로더 JVM의 구조 JVM은 Java Virtual Machine 의 약자로, 자바로 작성한 코드를 실행하는 가상머신이다. 현재는 많이 흐.. blog.robinjoon.space 자바의 힙 영역은 객체가 생성되고 존재하는 영역이다. 이런 객체들은 원시 타입의 데이터보다 훨씬 더 용량이 크기 때문에, 사용하지 않는 객체는 메모리에서 삭제되어야 한다. 아래 코드를 보자. for( int i = 0;i

Java/JVM 2021.11.12

[JVM] JVM의 구조 - 2. 런타임 데이터 영역(RDA)

2021.11.10 - [Java] - [JVM] JVM의 구조 - 1. 클래스 로더 [JVM] JVM의 구조 - 1. 클래스 로더 JVM의 구조 JVM은 Java Virtual Machine 의 약자로, 자바로 작성한 코드를 실행하는 가상머신이다. 현재는 많이 흐려졌지만, Java가 WORA(Write Once Run Anywhere) 를 구현하기 위해 물리적인 머신이 아닌 가상머. blog.robinjoon.space JVM의 런타임 데이터 영역은 크게 PC 레지스터(PC Register), JVM 스택(JVM Stack), 네이티브 메서드 스택(Native Method Stack), 힙(Heap), 메서드 영역(Method Area), 런타임 상수 풀(Runtime Constant Pool) 6가지..

Java/JVM 2021.11.11

[JVM] JVM의 구조 - 1. 클래스 로더

JVM의 구조 JVM은 Java Virtual Machine 의 약자로, 자바로 작성한 코드를 실행하는 가상머신이다. 현재는 많이 흐려졌지만, Java가 WORA(Write Once Run Anywhere) 를 구현하기 위해 물리적인 머신이 아닌 가상머신에서 동작하도록 구현되었다. Java로 작성한 코드는 전체적으로 아래 그림과 같은 과정을 통해 실행된다. 자바는 정적 로딩이 아니라 동적로딩을 한다. 즉, 컴파일타임이 아니라 실행타임에 클래스를 디스크에서 읽어와 메모리에 로드한다. 이런 로딩 작업을 하는 JVM의 구성요소를 클래스 로더라고 부른다. 클래스 로더는 3가지 원칙을 가지고있다. 클래스로더의 3원칙 1. 계층구조와 위임. 자바의 클래스 로더들은 서로 부모 - 자식관계를 이루어 계층을 이룬다. 또..

Java/JVM 2021.11.10