摘要: 基于redis 5.0.6 先列个表格 | 类型 | 实现 | | | | | | | string | sds | | | list | quicklist | | | set | intset | hashtable | | zset | ziplist | skiplist+hashtable 阅读全文
posted @ 2019-10-27 13:30 傅晓芸 阅读(278) 评论(0) 推荐(0) 编辑
摘要: string string相当于Java的String 常用命令 INCR/DECR INCRBY/DECRBY GET/SET MGET/MSET GETSET APPEND SET 赋值操作 O(1) EX 过期参数单位为秒 PX 过期参数单位为毫秒 NX key不存在时赋值 XX key存在时 阅读全文
posted @ 2019-08-09 18:33 傅晓芸 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 缓存 也不知道下面三个概念一开始是谁提出来的,归类方式很不科学… 缓存穿透 请求了redis和DB中不存在的数据(无效请求),导致请求redis直接访问DB 方案 将无效返回值存入redis,使无效请求不会访问DB 在应用层拦截请求,例如逻辑校验、布隆过滤器… 缓存雪崩 集中创建redis缓存,导致 阅读全文
posted @ 2019-07-13 23:47 傅晓芸 阅读(309) 评论(4) 推荐(0) 编辑
摘要: 根据jdk api文档内容记一笔… 根据引用强度(或可达性强弱)从弱到强依次为: 强引用 软引用 弱引用 虚引用 每种类型对应于一个不同的可到达性级别。 软引用 JVM保证在抛出OutOfMemoryError之前回收软引用的对象 适用于实现内存敏感的缓存 弱引用 引用对象判定为弱引用(无强引用和无 阅读全文
posted @ 2019-04-01 01:10 傅晓芸 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 以下分析基于jdk11.0.2 先画一张图 1. 创建HashMap时发生了什么? HashMap(),HashMap(int initialCapacity),HashMap(int initialCapacity, float loadFactor)。这三个方法都直接或间接地会初始化loadFa 阅读全文
posted @ 2019-01-18 01:11 傅晓芸 阅读(397) 评论(0) 推荐(0) 编辑
摘要: CopyOnWriteArrayList是ArrayList线程安全的变体。使用写时复制策略进行修改操作。 与之前版本较明显的区别是,jdk11中用来保护所有设值方法(mutator)的ReentrantLock改为使用关键字synchronized。 文档中也明确表示相比较于ReentrantLo 阅读全文
posted @ 2018-11-11 19:12 傅晓芸 阅读(776) 评论(0) 推荐(0) 编辑
摘要: java版本11.0.1,感觉写得太水了,等心情好的时候再重新编辑一下。 LongAdder中的核心逻辑主要由java.util.concurrent.atomic.Striped64维护,作为Striped64的继承类LongAdder定义了(LongAccumulator、DoubleAdder 阅读全文
posted @ 2018-10-20 17:56 傅晓芸 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 关于jvm虚拟机的文章网上都讲烂了。尤其是jvm运行时数据区的内容。 抱着眼见为实的想法,自己翻了翻JVM规范,花了点时间稍微梳理了一下。 自己动手画了一下JVM运行时数据区的图。 有别于JVM规范,hotspot中的方法区为metaspace,位于堆外内存(直接内存) 以下是阅读Java虚拟机规范 阅读全文
posted @ 2018-08-26 12:45 傅晓芸 阅读(303) 评论(0) 推荐(0) 编辑
摘要: win10下想查看JIT编译的汇编源码 结果提示: Could not load hsdis-amd64.dll; library not loadable; PrintAssembly is disabled 提示需要hsdis 这里给出网上捞到了资源,下载对应版本解压得到dll,保存到jdk目录 阅读全文
posted @ 2018-07-13 21:00 傅晓芸 阅读(4893) 评论(0) 推荐(1) 编辑
摘要: 这个坑也是踩过好几次了,记录一笔。 当试图使用Collectors.toMap将一个stream收集为Map的时候,若构造map的valueMapper返回null时,则会报NullPointerException。举个栗子: 理由么,因为在Collectors.toMap中调用了map::merg 阅读全文
posted @ 2018-04-18 11:32 傅晓芸 阅读(1844) 评论(0) 推荐(0) 编辑