ReentrantReadWriteLock 发表于 2019-04-07 | 分类于 java , juc | | 阅读次数: 字数统计: 4.4k 字 | 阅读时长 ≈ 19 分钟ReentrantReadWriteLock利用读写分离的思想,在读多写少的情况下有更好的性能表现。阅读全文 »
ReentrantLock 发表于 2019-04-02 | 分类于 java , juc | | 阅读次数: 字数统计: 1.9k 字 | 阅读时长 ≈ 7 分钟ReentrantLock顾名思义是可重入锁,提供了公平性的机制,内部基于AbstractQueuedSynchronizer来实现。阅读全文 »
AQS 发表于 2019-03-31 | 分类于 java , juc | | 阅读次数: 字数统计: 3.6k 字 | 阅读时长 ≈ 15 分钟AQS即AbstractQueuedSynchronizer,作为Java的juc(java.util.concurrent)包的核心基础类,为其他并发容器、工具类提供了底层的实现基础。阅读全文 »
HashedWheelTimer时间轮原理分析 发表于 2019-03-28 | 分类于 java , netty | | 阅读次数: 字数统计: 4.4k 字 | 阅读时长 ≈ 19 分钟HashedWheelTimer时间轮是一个高性能,低消耗的数据结构,它适合用非准实时,延迟的短平快任务,例如心跳检测。阅读全文 »
Slf4j适配日志原理 发表于 2019-03-26 | 分类于 java , log | | 阅读次数: 字数统计: 2.2k 字 | 阅读时长 ≈ 10 分钟slf4j只是为日志的输出提供了统一接口,并没有具体的实现,就好像JDBC一样。那么,大家会不会好奇slf4j是怎么绑定/适配/桥接到log4j或者logback其他日志实现组件的呢?阅读全文 »
Java日志体系总结 发表于 2019-03-22 | 分类于 java , log | | 阅读次数: 字数统计: 1.4k 字 | 阅读时长 ≈ 5 分钟本文的目的是搞清楚Java中各种日志Log之间是怎么的关系,如何作用、依赖,好让我们平时在工作中如果遇到“日志打不出”或者“日志jar包冲突”等之类的问题知道该如何入手解决,以及在各种场景下如何调整项目中的各个框架的日志输出,使得输出统一。阅读全文 »
Mockito的使用及实现原理 发表于 2019-03-19 | 分类于 java , mockito | | 阅读次数: 字数统计: 4.7k 字 | 阅读时长 ≈ 20 分钟Mockito是一个强大的mock工具,本文将重点讲述Mockito的基本使用及注意事项,以及其实现mock的原理。阅读全文 »
Excel大批量导入导出解决方案 发表于 2019-03-15 | 分类于 java | | 阅读次数: 字数统计: 3.9k 字 | 阅读时长 ≈ 18 分钟Java对Excel的操作一般都是用POI,但是数据量大的话可能会导致频繁的FGC或OOM,这篇文章跟大家说下如果避免踩POI的坑,以及分别对于xls和xlsx文件怎么优化大批量数据的导入和导出。阅读全文 »
Spring-Retry重试实现原理 发表于 2019-03-01 | 分类于 java , spring | | 阅读次数: 字数统计: 3.7k 字 | 阅读时长 ≈ 17 分钟Spring实现了一套重试机制,功能简单实用。本文将讲述如何使用Spring Retry的及其重试机制的实现原理。阅读全文 »
让线程“暂停”的方式对比 发表于 2019-02-19 | 分类于 java | | 阅读次数: 字数统计: 535 字 | 阅读时长 ≈ 1 分钟从编程角度理解yield, sleep, wait, park的使用场景。阅读全文 »