Java常见面试题:ThreadLocal对象处理

简介: ThreadLocal的本身作用就是进行操作对象信息保存,但是它与传统的信息保存不同,它不仅仅保存的是一个引用对象,而且还保存有一个当前对象,也就是说进行数据保存的时候ThreadLocal更像Map集合。

ThreadLocal对象处理

ThreadLocal的本身作用就是进行操作对象信息保存,但是它与传统的信息保存不同,它不仅仅保存的是一个引用对象,而且还保存有一个当前对象,也就是说进行数据保存的时候ThreadLocal更像Map集合。

范例:引用的麻烦

image.png
image.png
image.png

现在Demo类中的print()方法核心的目的是接收Message类的对象,在这样的情况下不希望进行引用传递,那么一旦不希望进行引用传递的话,这个时候就想到可以利用一个中间的环节类。

范例:避免引用传递

image.png
image.png
image.png
image.png

在之前的程序上所有的程序的功能都是在主线程完成的,所以该程序属于一个单线程的程序,如果说要进行多线程的访问开发的话,那么就会发现问题。

范例:观察多线程的操作问题

image.png
image.png
image.png
image.png
image.png
image.png

这种问题就出现在多个线程中的Message类的对象交叉进行DataCache类中msg对象引用的改变。

image.png
image.png
image.png
image.png
image.png
image.png

在进行数据保存的引用传递的时候不再只是一个引用类型,而是包含一个currentThread对象信息保存,这样就可以明确地知道当前操作的对象数据是什么,并且不会与其它线程进行混淆。

更多专业知识,面试技巧就在阿里云开发者社区,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
11天前
|
安全 架构师 Java
Java大厂面试高频:Collection 和 Collections 到底咋回答?
Java中的`Collection`和`Collections`是两个容易混淆的概念。`Collection`是集合框架的根接口,定义了集合的基本操作方法,如添加、删除等;而`Collections`是一个工具类,提供了操作集合的静态方法,如排序、查找、同步化等。简单来说,`Collection`关注数据结构,`Collections`则提供功能增强。通过小王的面试经历,我们可以更好地理解这两者的区别及其在实际开发中的应用。希望这篇文章能帮助你掌握这个经典面试题。
30 4
|
12天前
|
Java
java代码优化:判断内聚到实体对象中和构造上下文对象传递参数
通过两个常见的java后端实例场景探讨代码优化,代码不是优化出来的,而是设计出来的,我们永远不可能有专门的时间去做代码优化,优化和设计在平时
29 15
|
11天前
|
监控 Dubbo Java
Java Dubbo 面试题
Java Dubbo相关基础面试题
|
11天前
|
SQL Java 数据库连接
Java MyBatis 面试题
Java MyBatis相关基础面试题
|
11天前
|
存储 监控 算法
Java JVM 面试题
Java JVM(虚拟机)相关基础面试题
|
11天前
|
SQL 监控 druid
Java Druid 面试题
Java Druid 连接池相关基础面试题
|
11天前
|
缓存 安全 算法
Java 多线程 面试题
Java 多线程 相关基础面试题
|
5月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
2月前
|
存储 缓存 算法
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
本文介绍了多线程环境下的几个关键概念,包括时间片、超线程、上下文切换及其影响因素,以及线程调度的两种方式——抢占式调度和协同式调度。文章还讨论了减少上下文切换次数以提高多线程程序效率的方法,如无锁并发编程、使用CAS算法等,并提出了合理的线程数量配置策略,以平衡CPU利用率和线程切换开销。
面试官:单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
|
2月前
|
存储 算法 Java
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?
本文详解自旋锁的概念、优缺点、使用场景及Java实现。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
大厂面试高频:什么是自旋锁?Java 实现自旋锁的原理?