1,static修饰的变量的生命周期
首先static修饰的变量是在类在加载时就分配地址了,在类卸载才会被回收,这一点请明确.
2,分析
ThreadLocal的原理是在Thread内部有一个ThreadLocalMap的集合对象,他的key是ThreadLocal,value就是你要存储的变量副本, 不同的线程他的ThreadLocalMap是隔离开的,如果变量ThreadLocal是非static的就会造成每次生成实例都要生成不同的ThreadLocal对象,虽然这样程序不会有什么异常,但是会浪费内存资源.造成内存泄漏.
所以建议ThreadLocal用static修饰
推荐下好用的文件转换工具:http://filetools.top