Java Language
약한지도 맵
수색…
소개
약한 해시 맵의 개념
약한 해시 맵의 개념
키 포인트:-
- 지도의 구현.
- 해당 키에 약한 참조 만 저장합니다.
약한 참조 : 약한 참조에 의해서만 참조되는 객체는 열심히 가비지 수집됩니다. GC는 메모리가 필요할 때까지 기다리지 않습니다.
Hashmap과 WeakHashMap 간의 차이점 : -
Java 메모리 관리자가 더 이상 키로 지정된 객체에 대한 강력한 참조를 가지고 있지 않으면 맵의 항목이 WeakHashMap에서 제거됩니다.
예 :-
public class WeakHashMapTest {
public static void main(String[] args) {
Map hashMap= new HashMap();
Map weakHashMap = new WeakHashMap();
String keyHashMap = new String("keyHashMap");
String keyWeakHashMap = new String("keyWeakHashMap");
hashMap.put(keyHashMap, "Ankita");
weakHashMap.put(keyWeakHashMap, "Atul");
System.gc();
System.out.println("Before: hash map value:"+hashMap.get("keyHashMap")+" and weak hash map value:"+weakHashMap.get("keyWeakHashMap"));
keyHashMap = null;
keyWeakHashMap = null;
System.gc();
System.out.println("After: hash map value:"+hashMap.get("keyHashMap")+" and weak hash map value:"+weakHashMap.get("keyWeakHashMap"));
}
크기 차이 (HashMap 대 WeakHashMap) :
HashMap 객체에서 size () 메서드를 호출하면 동일한 수의 키 - 값 쌍이 반환됩니다. size는 HashMap 객체에서 명시 적으로 remove () 메서드가 호출 된 경우에만 감소합니다.
가비지 컬렉터는 언제라도 키를 파기 할 수 있기 (위해) 때문에, WeakHashMap는, 미지의 thread가 엔트리를 자동적으로 삭제하고있는 것처럼 동작합니다. 따라서 size 메소드가 시간이 지남에 따라 더 작은 값을 리턴 할 수 있습니다. WeakHashMap 크기 감소는 자동으로 발생합니다 .
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow