Java基础知识
文章平均质量分 85
源码分析,姿势分享
壹四
宇宙之外到底是什么
展开
-
ThreadLocal原理及内存泄漏问题
ThreadLocal的作用及使用场景作用ThreadLocal为每一个线程保存独立的副本信息,这样每个线程都可以修改和使用自己的副本对象,做到了线程隔离,不会影响其他线程的副本使用,确保了线程安全。场景最典型的就是使用SimpleDateFormat类的时候,会把SimpleDateFormat储存到ThreadLocal中做线程隔离,因为SimpleDateFormat是线程不安全的,避免了频繁地去创建对象。关于SimpleDateFormat类线程不安全的问题可以看我的另外一篇文章原创 2021-12-27 14:26:08 · 297 阅读 · 0 评论 -
为什么SimpleDateFormat要放到ThreadLocal里?
这两天工作中看到有人把SimpleDateFormat对象放在了ThreadLocal里,当时有点疑惑,ThreadLocal的主要作用肯定是用来做线程隔离的,那么为什么SimpleDateFormat这种简单的时间格式转换工具也要做线程隔离呢?查阅了一些博客,翻看了源码,搞懂了。记录一下,以便回顾。SimpleDateFormat是线程不安全的,我们直接上代码。一般来说,这种时间格式转换工具,我们都会做成一个公共工具类,如下所示:public class DateUtil {原创 2021-08-03 16:22:01 · 1311 阅读 · 1 评论 -
看完这篇你一定懂什么是Java泛型!
概念只要你想要接触Java,你就不可能不接触泛型,就好比你不可能不用List一样。所以泛型到底是个什么玩意儿呢?泛型,概括来说,就是把类型参数化。当我们去定义个方法的时候,最熟悉的情况就是需要定义一个形参,然后调用此方法时传递实参。而泛型就是将类型由原来的具体类型参数化,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。一个最TM简单的栗子List generic = new ArrayList();generic.add("string").原创 2021-07-29 14:40:36 · 241 阅读 · 0 评论