CS

CS

[Java] 가비지 컬렉션(Garbage Collection, GC)이란 무엇일까요?

🤔 가비지 컬렉션, GC? 자바의 메모리 관리 방법으로, JVM(자바 가상 머신)의 Heap영역에서 동적으로 할당했던 메모리 중 필요 없게 된 메모리 객체(Garbage)를 모아 주기적으로 제거하는 프로세스를 말합니다. C, C++ 같은 언어는 GC가 없기 때문에 개발자가 직접 메모리 할당과 해제를 해주어야 합니다. 하지만 자바는 개발자가 직접 해제하지 않고 GC에 의해 메모리를 관리하기 때문에 개발에만 집중할 수 있다는 장점이 있습니다. GC는 메모리를 자동으로 관리해주지만, 메모리가 언제 해제되는지 정확하게 알 수 없어 제어하기가 힘듭니다. 또한 GC가 동작하는 동안에는 다른 동작을 멈추기 때문에 오버헤드가 발생되는 문제가 있습니다. 이러한 점들로 상황에 따라 프로그램의 성능이 하락시킬 수 있어 프로..

CS

[Java] 자바 가상 머신 JVM이란 무엇일까요?

🤔 JVM이란 무엇일까요? Java Virtual Machine '자바 프로그램을 실행하기 위한 가상 기계(컴퓨터)'라고 할 수 있습니다. 자바는 운영체제에 종속적이지 않다는 특징을 가지고 있습니다. 작성된 자바 소스 코드(.java)는 자바 컴파일러(javac)를 통해 바이트 코드(.class)로 변환됩니다. 이 바이트 코드는 JVM에서 실행되고, JVM은 바이트 코드를 운영체제에 맞는 기계어로 해석하여 실행합니다. 이러한 JVM의 역할을 통해 여러 운영체에서 동일한 방식으로 자바 프로그램을 실행할 수 있습니다. 또한 JVM은 자동 메모리 관리를 제공합니다. 객발자가 객체에 할당된 메모리를 해제하지 않아도 Garbage Collection을 통해 사용되지 않는 객체를 자동으로 제거하여 메모리를 최적화합..

장용석
'CS' 카테고리의 글 목록