最新 最热

你的数据库真的穿“防弹衣”了吗

缓存经常被用来减少数据库访问量,以此来提高系统性能,承受更多的并发请求,就像“防弹衣”一样保护着数据库,防止被一颗颗“请求子弹”击中。 但引入缓存,也带来了一些新的问题,比如缓存击穿、缓存穿透、缓存雪崩、缓存数据...

2022-05-15
1

Android App Optimization Using ArrayMap and SparseArray

This article will show why and when use ArrayMap and SparseArray to optimize your Android Applications.

2022-05-13
1

5000 字 | 14 图 | 揭秘 Nacos 的 AP 架构 「Distro 一致性协议」

这次我们要进入 Nacos 的一致性底层原理了,还是先来一张架构图,让大家对 Nacos 的架构有个整体的印象,本篇会主要讲解一致性模块中的 Distro 协议。

2022-05-13
1

12 张图 | 硬刚了一波,三层缓存架构

上一讲我们讲到了 Eureka 注册中心的 Server 端有三级缓存来保存注册信息,可以利用缓存的快速读取来提高系统性能。我们再来细看下:

2022-05-13
1

原来一个 Map 就能搞定注册表了

本篇从源码角度带你学习 Eureka 服务端接收注册的流程。另外我从源码中也发现了一些值得我们学习的地方,如 Eureka 存储注册表的数据结构、利用读写锁来控制更细粒度的并发性,提高程序的运行效率。...

2022-05-13
0

21 张图 | 带你领略集合的 线程不安全

集合框架有Map和Collection两大类,Collection下面有List、Set、Queue。List下面有ArrayList、Vector、LinkedList。如下图所示:

2022-05-13
1

HashMap扩容机制解析

通过查看Java JDK1.8putVal()源码可看到,有两种情况可能会触发扩容。

2022-05-13
1

HashMap深度解析

JDK1.8之前HashMap由数组+链表组成。数组是HashMap的主体,链表主要是为了解决哈希冲突而存在。哈希冲突是两个对象调用hashCode方法计算的哈希值相同导致计算的数组索引值相同。...

2022-05-13
1

5000字 | 24张图带你彻底理解Java中的21种锁

乐观锁是一种乐观思想,假定当前环境是读多写少,遇到并发写的概率比较低,读数据时认为别的线程不会正在进行修改(所以没有上锁)。写数据时,判断当前 与期望值是否相同,如果相同则进行更新(更新期间加锁,保证是原子性的)。...

2022-05-13
1

全网最细 | 21张图带你领略集合的线程不安全

集合框架有Map和Collection两大类,Collection下面有List、Set、Queue。List下面有ArrayList、Vector、LinkedList。如下图所示:

2022-05-13
1