今天同事突然找我报了这个么问题,别人都没报错,就他
大致查了一下是jdk版本的问题,他将jdk版本换成1.8依旧报错
查了下,错误原因大致如下:
新启线程与主线程各有一份独立占内存空间,userSession等变量是主线程的局部变量,会随主线程结束而出栈销毁,
会存在新启线程引用不到的情况
答:
查了下,jdk8会自动为匿名内部类,也就是我们的新启线程传的局部变量隐士生命为final类型
final类型是为了保证主、子线程数据一致性
其实jdk对内部类的处理是将局部变量复制了一份给它,强制生命为final类型只是为了保证数据一致
那他这个也是jdk8为啥还报错呢,
只能说明他是个傻子,兼容级别没有改成1.8
啥也不是,还在那一顿喷,神烦