WeakHashMap
-
더이상 쓰지 않는 객체 레퍼런스는 없애자 + Weak ReferenceJAVA/Effective java 2021. 1. 2. 20:41
메모리 직접 관리 자바에 GC (가비지 콜렉터)가 있기 때문에 메모리 관리에 대해 신경 쓰지 않아도 될 거라고 생각하기 쉽지만 그렇지 않다. 다음 코드를 살펴보자. 여기서의 size는 index에 역할을 하고 있다. pop()을 보면 내가 넣을 장소가 아닌 뺄 장소로 이동해야 하기 때문에 먼저 --size를 하고 반환한다. 배열은 계속해서 값을 넣기만 하고 없어지지는 않는다. 스택에 계속 쌓다가 많이 빼냈다고 치자, 그래도 스택이 차지하고 있는 메모리는 줄어들지 않는다. 왜냐면 저 스택의 구현체는 필요없는 객체에 대한 레퍼런스를 그대로 가지고 있기 때문이다. 가용한 범위라는 것은 실제 유의미한 element를 가지고 있는 범위이고 이는 size 보다 작은 부분들이다. 그 값 보다 큰 부분에 있는 값들은 ..