问:上面这段代码会输出什么?为什么?
为什么输出1然后空指针了?
输出1是没有任何问题的。那空指针是为什么呢?
因为这是两个线程,子线程和主线程。子线程设置1,主线程肯定拿不到啊。ThreadLocal是和线程息息相关的。
再说说为什么会空指针?
因为你的get方法用的是long而不是Long,get方法在未设置初始化值的时候,默认返回的书null。long是基本类型,而 ThreadLocal
里的泛型是Long,get却是基本类型,所以要进行拆箱操作,也就是进行
null.longValue()的操作,这就会出现空指针了。
Original: https://www.cnblogs.com/zhuzhen/p/13344563.html
Author: 十七年蝉
Title: 关于ThreadLocal的一道面试题
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/622092/
转载文章受原作者版权保护。转载请注明原作者出处!