[置顶] 告知

摘要: 文章均搬运至个人有道笔记。 联系方式:dugk@foxmail.com 阅读全文
posted @ 2018-04-21 14:22 coderDu 阅读(83) 评论(0) 推荐(0) 编辑

集合未分页处理导致的full-gc

摘要: 参考文献 : "战小狼:OMG!又一个频繁FullGC的案例;" jdk8下进行的,jdk11不存在此案例问题。 1. 问题 集合持有的x对象不能被 ,从而晋升到old区导致 。因此可以设置阈值在年轻代占满之前释放掉x对象——可被 掉。 错误代码 java for(int i=0;i globalL 阅读全文
posted @ 2018-12-05 11:58 coderDu 阅读(286) 评论(0) 推荐(0) 编辑

sql优化

摘要: 1.索引注意事项 0. 索引的建立应该结合具体的业务,不论表多大多复杂,如果业务仅仅对一个字段作为限制条件查询,则单列索引就可以。如果查询涉及多个字段且经常需要联表,则常是在各个查询条件字段的交集上建立复合索引。细节结合业务; 1. like左匹配模式可以走到索引,但是同 对于走到范围索引的字段如果 阅读全文
posted @ 2018-10-29 15:23 coderDu 阅读(121) 评论(0) 推荐(0) 编辑

死锁详细介绍

摘要: 参考 《java并发编程实战》, "《java并发编程实战》源码" 主要概念 顺序加锁+加时赛锁(全局对象,比如某个类的class对象); 开放调用:如果调用某个方法时不需要持有锁,则这种调用被称为 == 开放调用(open call) ==。非开放调用可以通过==细化加锁力度==转变为开放调用。非 阅读全文
posted @ 2018-10-05 20:29 coderDu 阅读(1194) 评论(0) 推荐(0) 编辑

缓存的简单实现方式

摘要: 参考: 《Java 并发实践》 李大狗大神的大作和源码非常值得分析阅读 1. 的`hashCode`:数据缓存在类变量中 字符串类维护了一个常量池—每当使用 创建对象,都会首先检查字符串是否在常量池中—有的话直接返回池中对象的实例引用,否则则创建一个对象返回 并将对象放进池中 。 没当调用 方法时, 阅读全文
posted @ 2018-10-04 15:19 coderDu 阅读(182) 评论(0) 推荐(0) 编辑

LRU基本介绍及其实现方式

摘要: 原文地址: http://note.youdao.com/noteshare?id=1abbeb1deee85f0203001e9bc34f65b4 参考 "LRU算法" "dubbo cache" 一.基本介绍 1.1 常见缓存淘汰算法及其实现思路 对于缓存,常见淘汰算法有3: 1. : firs 阅读全文
posted @ 2018-10-04 15:16 coderDu 阅读(2618) 评论(0) 推荐(0) 编辑

异步任务二:FutureTask源码分析

摘要: 参考文献 "Unsafe方法详解" 1. 简介 实现的 接口继承了 接口。 是可取消的异步计算,是 的基本实现,提供了开始、取消任务以及查询其计算结果的方法—— 方法一直阻塞获取结果(接受中断信号), 超时则会抛异常。 除非任务使用 ,否则一旦计算完成,任务就不能重置或者取消了。 可以使用 或者 作 阅读全文
posted @ 2018-09-12 16:14 coderDu 阅读(218) 评论(0) 推荐(0) 编辑

UnSafe类方法和使用简介

摘要: 参考文献 "Unsafe源码分析" 1. CAS方法 交换int、long和对象: 2. 指令重拍 防止指令重排的写操作,JDK会在执行这三个方法时插入StoreStore内存屏障,避免发生写操作重排序: 3. 获取没有访问权限的实例变量 1. 非系统类需要通过反射获取 实例; 2. 通过 方法获取 阅读全文
posted @ 2018-09-12 11:30 coderDu 阅读(540) 评论(0) 推荐(0) 编辑

java自带报文摘要算法实现类MessageDigest

摘要: 1. 得到报文加密算法后的haxi数组分三步: 对于md5获取其他算法,我们希望结果值是16进制的字串。 byte(字节)由8位组成,16(hex)进制4位,因此每个byte需要两个16进制字符表示。 阅读全文
posted @ 2018-09-11 10:49 coderDu 阅读(267) 评论(0) 推荐(0) 编辑

TimeUnit类用于控制时间和sleep的方法栈

摘要: 1. 枚举使用 这种在枚举外调用枚举中声明的方法的设计思路很有意思,也算是动态调用? 1. 定义抽象方法doWork(),可在具体枚举值中实现不同枚举值进行不同的处理; 2. 定义调用参数方法invokeWorker(),调用不同枚举值的抽象方法的实现; demo如下: 2.源码讲解 1. 所有时间 阅读全文
posted @ 2018-09-10 21:52 coderDu 阅读(556) 评论(0) 推荐(0) 编辑

ConcurrentHashMap和FutureTask实现高速缓存—Aviator

摘要: 1. 介绍 主要方法 实现了 和`Future`接口,其主要方法是: 状态和 方法 实现了 接口,根据其 方法的执行,可以将其氛围三种状态: 1. 未启动: 方法未执行; 2. 已启动: 方法执行中; 3. 已完成: 方法执行结束。 未启动时,执行 则任务永远不会执行;启动时, 将以 中断执行任务线 阅读全文
posted @ 2018-09-10 21:49 coderDu 阅读(535) 评论(0) 推荐(0) 编辑