자바에서의 가비지 콜렉터와 C언어에서의 메모리 해제

Yumin Jung·2023년 11월 6일
0

ABOUT 프로그래밍

목록 보기
2/11

C언어의 할당된 메모리 해제

C 언어에서 변수를 메모리에서 지우는 방법은 다음과 같다. 먼저, 변수 값을 다른 값으로 덮어쓴다. 변수를 다른 값으로 설정하면 해당 변수가 메모리에서 가리키는 데이터가 변경되어 메모리에서 삭제된다. 예를 들어, 정수 변수를 0으로 설정하거나 다른 값을 할당하면 해당 변수가 가리키는 데이터가 없어진다.

int myVariable = 42; // 변수 초기화
myVariable = 0; // 변수 값을 0으로 설정하여 데이터 삭제

또한, 동적으로 할당된 메모리를 사용하는 경우 free 함수를 사용하여 메모리를 해제할 수 있다. 이 함수는 주로 동적으로 할당된 메모리 블록을 해제하는 데 사용된다.

int *dynamicVariable = (int*)malloc(sizeof(int)); // 동적 메모리 할당
free(dynamicVariable); // 메모리 해제

자바의 자동 메모리 해제, 가비지 콜렉터

자바와 C 언어의 메모리 관리 방식은 다르다. C 언어는 개발자가 명시적으로 메모리 할당과 해제를 관리해야 하며, 메모리 누수와 다른 문제가 발생할 수 있다. 자바의 가비지 콜렉터(Garbage Collector)를 사용하여 메모리 관리를 자동화한다. 가비지 콜렉터는 더 이상 사용되지 않는 객체를 자동으로 식별하고 해제하여 메모리를 관리한다.

각 단점

C 언어의 명시적 메모리 관리는 개발자에게 더 많은 제어권을 제공하지만 실수로 메모리 누수가 발생할 수 있다. 자바의 가비지 콜렉터는 메모리 관리를 훨씬 간단하게 만들어 주지만 실행 시간에 가비지 콜렉션 작업이 발생할 수 있으며, 이는 성능에 영향을 미칠 수 있다.

profile
문과를 정말로 존중해

0개의 댓글