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还可以避免线程池中线程重复使用时带来的问题