728x90
Garbage Collection : 자동 메모리 관리

 

가비지 컬렉터가 더이상 사용하지 않은 객체를 제거하는 것

가비지 컬렉션의 특징

  1. 자동 메모리 관리
  2. 가비지 컬렉션은 프로그래머가 구현할 수 없다.
  3. 가비지 컬렉션은 객체이지 참조가 아니다.
  4. 가비지 컬렉션의 대상은 살아있는 스레드가 더이상 참조하지 않는 객체이다.
  5. 다른 참조 변수가 참조하고 있는 객체는 가비지 컬렉션의 대상이 될 수 없다.
  6. 객체에 할당된 메모리를 명시적으로 해제할 수 없다.
  7. 가비지 컬렉터가 객체를 어떤 순서로 정리하는지 알 수 없다.
  8. 가비지 컬렉터가 언제 수행될지 알 수 없다.
  9. 가비지 컬렉터는 JVM(Java Virtual Machine)이 결정하며 프로그래머는 단지 요청만 할 수 있다.

가비지 컬렉션의 조건

  1. 참조 변수에 null 할당하기
    참조 변수에 null을 할당하면 이 변수 이전의 값은 더이상 접근 할 수 없다.
    그래서 이 객체는 가비지 컬렉션이 된다.

  2. 참조 변수에 다른 객체의 참조값 할당하기
    참조 변수에 다른 객체의 참조 변수를 할당하면 참조 변수가 가리키고 있던 객체를 접근 할 수 없다.

가비지 컬렉션 요청하기

어떤 객체가 가비지 컬렉션 대상이 되어있다고 해서 바로 가비지 컬렉션이 동작하지 않는다.

가비지 컬렉션은 JVM이 스스로 동작시키므로 프로그래머가 강제시킬 수 없다.

다만 아래와 같은 방법으로 요청은 할 수 있다.

System.gc();
Runtime.getRuntime().gc();

예제 1.

<Garbage Collection>

public class GC {
	public static void main(String[] args) {
		
		String str = new String("Hi");
		String str2 = new String("Hi");
		
		str2 = str;
		
		System.gc();
		Runtime.getRuntime().gc();
		//------------------		1. 런타임 속성
		//------------------------  2. 1속성에서 gc실행

'JAVA' 카테고리의 다른 글

jsp파일  (0) 2021.07.28
다이나믹 웹 프로젝트에서 DB 연결  (0) 2021.07.27
자바 이클립스에 Maria DB 연결하기  (0) 2021.07.27
Maria DB 설치  (0) 2021.07.27
자바로 Excel 파일 만들기  (0) 2021.07.27

+ Recent posts