实现一个软引用缓存
在
java中有四种引用类型,分为强引用,软引用,弱引用,虚引用,这里介绍如何使用软引用来实现一个缓存。
实现代码
| |
测试代码
注意: 我在
build.gradle文件中添加了test的jvm参数 jvmArgs = ["-Xmx10m", “-Xms10m”], 来模拟内存不足来触发回收软引用。
在
java中有四种引用类型,分为强引用,软引用,弱引用,虚引用,这里介绍如何使用软引用来实现一个缓存。
| |
注意: 我在
build.gradle文件中添加了test的jvm参数 jvmArgs = ["-Xmx10m", “-Xms10m”], 来模拟内存不足来触发回收软引用。
jdk 基于 8 版本
在平时的开发中,我们会经常用到
ArrayList, 非常有必要了解源码。
| |
添加元素到
ArrayList中,如果空间不够,则触发newCapacity = oldCapacity + (oldCapacity >> 1)。
jdk 基于 8 版本
在平时的开发中,我们会经常用到
LinkedList, 非常有必要了解源码。
| |
添加元素
当我们使用缓存时,必定会遇到缓存一致性问题,也就是在读写请求过程中数据库和缓存中的数据不一致。 下面将分析为什么会造成不一致, 所有的代码参考末尾。