- 博客(9)
- 资源 (30)
- 收藏
- 关注
转载 其他:synchronized原理分析
昨天在看EventBus代码的时候看到了这么一段代码,我们理解的synchronized是一个很重量级的锁,但是用在eventbus中会不会影响性能呢,还是因为已经对synchronized进行了优化,在这里有必要在学习一下了synchronized (this) { super.invokeSubscriberMethod(event); }先看一下...
2019-06-30 10:34:30 293
原创 源码:EventBus源码原理分析
一直对EventBus的实现原理比较好奇,最近看了一下源码,版本是19.0,在这里做一个记录,首先看一下EventBus的其中几个关键变量的类图:老规矩直接在代码上通过注解分析,这里的核心只是EventBus,不涉及到发布订阅,这个一会再讲 @Beta public class EventBus { private static final Logger logger ...
2019-06-29 12:47:14 743
转载 其他:volatile的原理解析
在看AtomicInteger代码的时候,看到了它的原始是这么定义的 private volatile int value;,在unsafe类中有这几种原生的方法 var5 = this.getIntVolatile(var1, var2); var6 = this.getLongVolatile(var1, var2); var5 = this.getObjectVolat...
2019-06-27 23:37:05 430
原创 源码:并发包-AtomicInteger的源码解析
花了一点时间看了一下源码,记录了一下,在这里把记录的东西贴出来,和前边的文章有一些区别 public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; /...
2019-06-26 23:56:15 152
原创 源码:并发包-AtomicBoolean的源码解析
最近学习一下源码,这是并发包下边代码解析,简单直接一点直接上代码: /** * 一个简单的通过实现序列化的对象 */ public class AtomicBoolean implements java.io.Serializable { private static final long serialVersionUID = 4654671469794556979L...
2019-06-24 00:00:41 240
原创 源码分析:Guava Cache原理以及源码分析
上一篇文章讲了LocalCache是如何通过Builder构建出来的,这篇文章重点是讲localCache的原理,首先通过类图理清涉及到相关类的关系,如下图我们可以看到,guava Cache的核心就是LocalCache,LocalCache实现了ConcurrentMap,并继承了抽象的map,关于ConcurrentMap的实现可以看这篇文章,讲的是并发hashmap的实现,对理解这篇文章有...
2019-06-23 15:35:26 2156
原创 源码分析:Guava Cache的使用以及源码分析-Builder
Guava Cache是性能非常高的本地缓存,其他的还有ehcache等。相对于本地缓存还有分布式缓存,其实就是独立于业务的第三方应用,比如redis、memcahe或者自己弄个机器加大内存,把它当作另外一个集群的分布式缓存同样是可以的,但是要做到高可用不是一件简单的事情。另外,内存缓存有个不可避免的问题是易丢失,所以要持久化的就老老实实弄一个redis或者直接入库。这里主要记录是标题的内容,话不...
2019-06-22 23:36:12 679
原创 源码分析:ThreadLocal的使用以及源码分析
最近项目中用到了ThreadLocal,一直对它的使用原理有疑惑,比如:到底是怎么实现线程间隔离、各个名词之间是什么关系?今天看了看源码,在这里总结一下,分为三个大部分去记录,分别是:简单使用和源码分析简单使用使用这块直接上代码了,下边代码模拟了一个service,然后两个线程去跑去修改各自的变量,每个变量不受各自的修改影响,需要说明的是主线程独立于两个线程,这两个线程相当于service...
2019-06-22 15:26:53 328
原创 BigDecimal工具类
下边两篇文章对BigDecimal做了一个很好的总结,可以先看一下这两篇文章Java中BigDecimal的使用BigDecimal 舍入模式(Rounding mode)介绍https://blog.csdn.net/guanmjie/article/details/4458604另外在转类型的时候,用到什么精度就是什么精度,不要进行额外的转换,否则还会出现精度问题impo...
2019-06-20 22:51:53 747
Springboot consul 服务提供端和服务发现端
2017-08-17
springboot中的 动态代理的选择测试代码
2017-08-01
springboot mybatis 集成多数据源 两种实现方式
2017-06-30
springMVC+Ehcache+MySQL
2016-11-15
spring aop 自定义缓存实现
2015-12-11
spring简单的缓存
2015-12-09
java装饰模式实例
2015-04-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人