아카이브

Garbage와 Garbage Collection 본문

프로그래밍

Garbage와 Garbage Collection

주멘이 2018. 6. 18. 15:14

Garbage

- 응용프로그램에서 더 이상 사용되지 않는 메모리

- 무효영역

- new 연산자를 이용하여 시스템으로부터 할당받아 사용되다가 더 이상 사용되지 않는 객체나 배열 메모리 등 

- 더 이상 사용되지 않는다 = 객체나 배열을 가리키는 레퍼런스가 없다

- uncreachable 객체 (레퍼런스가 null이거나 메소드 내에서 (stack에) 생성된 객체) 가 대상


Garbage Collection

- Garbage를 회수하여 사용할 수 있는 메모리 공간을 늘리는 것

- Garbage Collector 가 수행

- JVM은 Garbage Collector 역할을 수행하는 Garbage Collection Thread를 갖고 있음

- JVM 판단하에 동작하므로, 사용자가 강제할 수 없지만 

   System.gc() 혹은 Runtime.getRuntime().gc() 등으로 요청할 수 있음

- 보통의 경우, JVM은 프로그램의 new 명령어를 읽어올때 GC를 Trigger함 -> 이때 heap의 메모리가 부족한지 check하고 collecting 여부를 판단

'프로그래밍' 카테고리의 다른 글

OOP의 4가지 특징  (0) 2018.06.18
Call by Value 와 Call by Reference  (0) 2018.06.18
Overriding 과 Overloading  (0) 2018.06.18
Wrapper Class를 사용하는 이유  (0) 2018.06.18
static VS non-static  (0) 2018.06.18