WeakHashMap不是線程安全的:WeakHashMap不是線程安全的,如果需要在多線程環境中使用,需要進行額外的同步處理。
WeakHashMap的key和value都可以為null:和HashMap一樣,WeakHashMap的key和value都可以為null。但是需要注意的是,如果一個key被GC回收了,對應的entry也會被自動移除,因此使用null作為key可能會導致意外的移除操作。
WeakHashMap的WeakReference特性:WeakHashMap使用WeakReference來保存key,在key沒有強引用的情況下,會被垃圾回收器回收。因此,如果使用WeakHashMap存儲key,需要確保有其他地方保持對key的強引用,否則key會被意外回收。
WeakHashMap不適合用作緩存:WeakHashMap中的entry會在key被垃圾回收時自動移除,因此不適合用作緩存。如果需要使用WeakHashMap來實現緩存,需要額外考慮如何處理key被回收時的情況。
不要修改WeakHashMap的key:因為key在被回收后會自動移除對應的entry,因此不建議在使用WeakHashMap中的key時修改key的內容,這可能會導致意外的移除操作。