본문 바로가기

Java2

[Java] Garbage Collection은 어떻게 메모리를 관리해줄까? (GC동작원리, Young, Old, MemoryLeak) 프로그래밍에 맨 처음 입문할 때 자바의 장점에 대해 들은적이 있다. 객체지향언어이다, 운영체제에 독립적이다, 멀티쓰레드를 지원한다, Garbage Collector가 메모리를 관리해준다 등등.. 처음 배울 당시엔 전혀 이해가 가지 않았던 장점들이다ㅎㅎ 이번 포스팅은 위에 나열한 장점중 Garbage Collector에 대해 적어보려고 한다! (하지만 자바에만 있는 것은 아닌...) (Garbage Collection을 이해하기 위해서는 JVM의 메모리 구조를 이해하고 있으면 좋다.) 목차 1-1. Garbage Collector란? 1-2. GC의 대상 2-1. GC의 청소 방식 1) Stop The World 2) Mark and Sweep 3) Heap영역의 구조 2-2. GC의 동작 방식 1) Yo.. 2024. 2. 4.
[Java] Java 메모리 구조 (JVM, Stack, Heap, Static) Java의 메모리구조를 이해하기 위해서는 JVM을 어느정도 알아야한다. 사실 JVM의 메모리구조라고 하는 것이 맞을수도 있겠다. 본격적인 시작 전에 JVM의 동작 과정을 간단하게 설명해보겠다. 사전지식1 (JVM의 구조와 동작 과정) 먼저, 우리가 java 언어로 작성한 코드가 어떻게 프로그램 위에서 돌아가는지를 알아야한다. 1. 개발자가 코딩을 하면 .java 파일이 생성이 된다. 2. .java 파일은 자바컴파일러(javac)에 의해 .class 파일(바이트 코드)로 컴파일된다. 3. .class 파일은 JVM의 ClassLoader에 의해 Runtime Data Area에 로드된다. 4. Runtime Data Area에 로드된 .class들은 Execution Engine을 통해 해석된다. (**.. 2024. 1. 30.
반응형