본문 바로가기

컴퓨터와 IT

동적할당, 정적할당, 가비지컬렉터

동적할당

int[] a;

a = new int[5];

 

new 연산자 등을 사용해 프로그램 도중 필요한 양 만큼 할당하는 것

heap 메모리에 저장된다.

 

(프로그램 종료시 garbage collector가 정리한다)

 

정적할당

메모리를 미리 stack memory에 확보해둔다.

배열처럼 int[] a = new int[10];

int a = b;

처럼 함수종료될때까지 안쓰는 메모리가 낭비된다.

함수 호출이 끝나면 사라진다.

 

가비지 컬렉터

 

자바에서는 메모리를 가비지컬렉터라는 알고리즘을 통해 관리한다.

개발자가 메모리를 처리하기 위한 로직을 만들필요도 ,만들어서도 안된다.

 

자바에서 쓰레기는 객체다. 하나의 객체는 메모리를 점유하고,

필요하지 않으면 메모리에서 해제되어야 한다.

 

메모리 점유란 코드에서 a라는 객체가 만들어지고 메모리의 한 부분을 점유하게 되고, 특정 메소드 호출 후 수행이 완료되어 필요없어진 객체를 쓰레기라고 하는데, 이 쓰레기를 효과적으로 처리하는 작업을 가비지 콜렉션 ( Garbage Collection) 이라고 부른다.

 

 

 

 

 

 

 

출처 :  https://javakorea.tistory.com/entry/%EC%9E%90%EB%B0%94-%EB%8F%99%EC%A0%81%EC%A0%95%EC%A0%81-%ED%95%A0%EB%8B%B9-%EA%B3%B5%EB%B6%80

 

&&