본문 바로가기
반응형

Heap3

[Java] Java의 GC(Garbage Collector)는 어떻게 동작할까 Java의 가비지 컬렉터(Garbage Collector, 이하 GC)는 메모리 관리를 자동화하여 개발자가 메모리 누수와 메모리 관리에 대한 걱정을 줄이는 역할을 합니다. GC는 더 이상 사용되지 않는 객체를 식별하고 해제하여 메모리를 회수합니다. Java의 GC는 다양한 알고리즘과 방식으로 동작할 수 있으며, 주요 구성 요소 및 작동 방식에 대해 설명하겠습니다. 💡객체 생성 Java 프로그램에서 객체가 생성되면 메모리 힙(heap) 영역에 저장됩니다. 이 힙 영역은 Java 프로그램의 모든 객체 인스턴스를 저장하는 곳입니다. 💡 객체 참조 객체는 변수나 다른 객체에 의해 참조됩니다. 객체가 더 이상 참조되지 않을 때 GC가 필요해집니다. 💡 Reachability(도달 가능성) GC는 도달 가능한(re.. 2023. 10. 16.
[Java] new String()과 ""(리터럴 방식)의 차이 new String() 및 ""(빈 문자열 리터럴)은 문자열을 생성하는 두 가지 다른 방법입니다. 이 두 방법 간에 중요한 차이점이 있습니다. 다음은 이 차이점을 자세히 설명합니다. 💡 메모리 할당 new String(): new String() 생성자를 사용하여 문자열을 만들면 새로운 문자열 객체가 힙(heap) 메모리에 항상 생성됩니다. 이것은 메모리를 더 많이 사용하며 문자열이 같은 내용을 가진 다른 문자열과 비교할 때 참조 비교(Reference Comparison)가 아닌 내용 비교(Content Comparison)를 수행해야 합니다. ""(빈 문자열 리터럴): 빈 문자열 리터럴(또는 문자열 리터럴)을 사용하면 문자열 풀(String Pool)에 있는 기존 문자열 객체를 재사용합니다. 따라서 .. 2023. 10. 14.
[Java] JVM의 구조 💡JVM의 동작방식 [Java] 컴파일 과정 ✔️컴파일이란? 프로그래밍 언어로 작성한 코드는 사람이 이해하고 작성하기 편리한 형태입니다. 그러나 컴퓨터는 이러한 코드를 직접 실행할 수 없습니다. 여기에서 컴파일러가 등장합니다. richwish.tistory.com 자바로 개발된 프로그램을 실행하면 JVM은 OS에 메모리를 할당합니다. 자바컴파일러(javac)가 자바파일(.java)을 바이트코드(.class)로 컴파일 합니다. ClassLoader를 통해서 바이트코드를 JVM Runtime Data Area로 로딩합니다. Runtime Data Area에 있는 바이트코드들은 Excution Engine을 통해 해석됩니다. 해석된 바이트코드는 Runtime Data Area의 각 영역에 배치되어 수행하며 이.. 2023. 10. 5.
반응형