728x90 java14 [Java] Garbage Collector Garbage Collector 개발을 하다 보면 수많은 객체, 배열 등이 메모리에 할당됩니다. 하지만 메모리를 할당만 할 뿐 반환을 따로 하지 않는데 그 이유는 JVM에서 GC(Garbage Collector)가 자동으로 메모리를 관리해 주기 때문입니다. GC가 어떻게 메모리를 관리할까요? 할당받은 객체나 배열 중에서 더 이상 사용하지 않는, 즉 참조하지 않는 객체, 배열들을 Garbage라고 부릅니다. 위 그림은 Garbage가 되는 하나의 예시인데 참조변수 b는 처음에 Person("춘향이")를 참조하고 있지만 b = a 대입 연산에 의해 a가 참조하는 Person("홍길동")을 참조하게 되면 기존에 참조 중이던 Person("춘향이") 객체는 더 이상 참조하는 곳이 없기 때문에 Garbage가 됩.. 2023. 7. 16. [Java] JVM 이란? JVM 이란? C와 C++ 등과 같은 언어는 프로그램이 컴파일이 되면 해당 OS에 종속된 기계어 코드로 변환되어 다른 OS에서 실행을 할 수 없지만, 자바에서는 각기 다른 OS에서 자바 프로그램을 실행할 수 있습니다. 그 이유는 바로 JVM이 중계자 역할을 하여 어느 OS에서든 자바 프로그램이 컴파일되어 실행될 수 있기 때문입니다. 1. 자바 프로그램 실행 과정 자바 컴파일러를 통해 Java Source를 컴파일합니다. 컴파일된 Class 파일을 Class Loader에게 전달합니다. Class Loader는 동적로딩을 통해 ByteCode들을 JVM에 있는 Runtime Data Area에 로딩합니다. Execution이 Runtime Data Area에 있는 ByteCode들을 명령어 단위로 한 라인.. 2023. 7. 16. 이전 1 2 3 4 다음 728x90