1、爲什麼要用static修飾ThreadLocal?
避免每一個線程都new一個ThreadLocal
2、static壞處?
ThreadLocalMap中Entry自動清除失效功能失效。Entry繼承自WeakReference,WeakReference關聯弱引用對象ThreadLocal無法被垃圾回收,Entry也無法自動清除
3、ThreadLocal內存泄露原因?
ThreadLocalMap中Entry自動清除功能,只有在調用get和rehash起作用,非實時清除;且調用get時也只可能清除一部分;再加上如果使用了static修飾ThreadLocal,自動清除失效。所以一定要手動remove,同時手動remove還可以避免線程池中線程重複使用時帶來的問題