自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

转载 volatile与JMM

https://www.cnblogs.com/dolphin0520/p/3920373.html

2021-01-08 18:22:39 71

转载 dcl单例模式

未考虑多线程 在实现单例模式时,如果未考虑多线程的情况,就容易写出下面的错误代码: public class Singleton { private static Singleton uniqueSingleton; <span class="token keywo...

2021-01-08 18:06:58 99

原创 ThreadLocal源码解析

threadlocal的核心是通过隔离的方式来解决共享变量的安全性问题,这一方式能得以实现的基础是每个线程都有一个threadlocalmap, 我们可以通过threadlocalmap来存储,即以threadlocal为key的entry存储在threadlocal中,从而保证这个线程都会存有变量的副本,互不干扰,使用threadlocal基于以下几个事实: 1.每个thread都有一个threadlocalmap; 2.thread可以有多个th...

2021-01-08 16:21:27 149

原创 拆箱和装箱

装箱:基本类型转变为包装器类型的过程。 拆箱:包装器类型转变为基本类型的过程。 以Integer为例分析自动装箱和拆箱的过程,先看一组代码 从源码来分析结果,Integer有value属性,类型为int,对于1处和4处会触发自动装箱,即执行valueof方法 由上源码可知装箱时当i>=-128,i<=IntegerCache.high(默认127)会自动从内部类IntegerCache的cache数组中拿取对象,超出这个范围则new对象,1处在返回内,会拿取同一缓...

2021-01-06 18:12:28 71

原创 java==和equals的区别

对于基本类型==和equals一致,封装类型则需要重写hashcode和equals方法,下面以代码为例 /* * 这种方式会把abc放到常量池中,后面如果再有引用abc则直接从常量池中查询,如果常量池中没有则在常量池中开辟空间存储abc * */ String a= "abc"; String b=a; String c="abc"; /* * 这种方式是直接在堆内存中存储 * */ String d=new String("abc"); St...

2021-01-06 15:10:16 82

原创 分布式主键

分布式数据库生成主键实践 利用redis生成:时间戳+redis自增 时间戳可到毫秒级,则有1000的并发量 redis自增取模,如按1000000取模,则支持1000*100000=100000000级的并发量 如果redis做了分片,则可以把redis的分片规则计算出的id放入主键中,从而保证主键的唯一性:时间戳+计算出的redis分片id+redis自增 ...

2020-10-17 11:26:13 128

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除