- 博客(4)
- 资源 (5)
- 收藏
- 关注
原创 Java:google guava缓存存储原理分析
google guava缓存结构1)LocalCache.Segment(继承了可重入锁,有多少个Segment取决于设置的并发级别)2)java.util.concurrent.atomic.AtomicReferenceArray(第一层Java的原子对象数组,没有使用到CurrentHashMap),通过对key进行hash,决定数组的index3)ReferenceEntry<...
2020-02-28 10:59:06 781
原创 Java:google guava缓存穿透原理分析
google guava缓存穿透使用ReentrantLock(可重入锁)实现,当某个key在缓存中失效并执行回源,其他线程将会阻塞,直到回源完成。1)ReentrantLock管理LocalCache中包含内部类Segment,该类继承了ReentrantLockstatic class Segment<K, V> extends ReentrantLock {在...
2020-02-27 13:50:27 1161
原创 Java:orika-mapper对象深复制工具
Orika是一个Java Bean映射框架,它递归地将数据从一个对象复制到另一个对象。它在开发多层应用程序时非常有用。为什么要使用对象映射?Orika可以用来简化一个对象层和另一个对象层之间的映射过程,避免各种手动编写创建对象和复制属性的方法。Orika目标是构建一个全面、高效和健壮的Java bean映射解决方案。Orika专注于尽可能自动化,同时在需要时通过配置和扩展提供定制。...
2020-02-24 18:21:37 1370
原创 Java:spring Value注解用法详解
Value注解是字段或方法/构造函数参数级别的注释,用于分配参数的默认值表达式。我们可以使用@Value注释读取spring环境变量和系统变量。语法:@Value("Default DBConfiguration")private String defaultName;//Method@Value("Test")public void printValues(String s,...
2020-02-06 14:48:43 5398
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人