首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
最完整系列
sidfate
创建于2021-05-13
订阅专栏
最完整的技术解析文档,源码、架构、思想的大杂烩
等 3 人订阅
共11篇文章
创建于2021-05-13
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
【最完整系列】JAVA-容器篇-LinkedList源码解析
LinkedList 顾名思义其本质是一个链表,具体来说是一个双向链表,同时还有2个指针分别对应链表的头和尾。 Node 结构也很简单,prev 和 next 说明它是一个双向的链表,保存前后 Node 的指针。接下来进入 add 的过程: 简单来说,添加一个元素就是往链表尾插…
【最完整系列】JAVA-容器篇-ArrayList源码解析
ArrayList 本质上就是一个数组,另外就是做了一些额外操作,允许动态的修改大小。 所谓的动态,其实不难理解,就是分离了容量和尺寸的概念,容量是总共能容纳的元素数量,尺寸是实际已经存放的元素个数。对应在源码中,有2个重要的变量: elementData 表示实际存放的元素数…
【最完整系列】JAVA-容器篇-HashMap面试最详解
在讲技术前有必要讲一下这篇文章的由来。写java的朋友,无论是客户端还是服务端,HashMap基本上都最常用的java容器了,正因为最常用,所以我们需要去了解的更深,对代码优化和规范都有好处。网上关于 hashmap 的讲解也铺天盖地多的是,那为什么我还要写一篇这个呢。原因主要…
【最完整系列】Redis-这次彻底搞懂缓存雪崩、击穿、穿透
今天我们讲讲用 redis 缓存时容易遇到的一些问题。首先要明确一点的是,缓存雪崩、击穿、穿透这些名词虽然是针对缓存的,但是实际的受害方往往是数据库(存储层)。因为我们之所以用缓存,就是为数据库服务,因为数据库的抗压性相对要低于缓存系统。当我们的缓存由于一些原因使用不当时,就会…
【最完整系列】Redis-结构篇-通用对象
前面在讲字典的时候我们曾提到过整个 redis 的 db 中 key-value 结构也是一个 dict,dict 的 key 我们知道是一个字符串 SDS(参照我之前的文章),那么 value 的话可以对应多种类型,为了统一管理 value 的多种类型,redis 提供了一个…
【最完整系列】Redis-结构篇-字符串
众所周知,redis 是用 c 语言写的。学过 c 语言的同学想必也对 c 语言中的字符串类型有所认识,c 语言没有专门定义字符串数据类型(如其他语言中的string),它用以 '/0' 结尾的字符数组 char[] 来表示一个逻辑意义上的字符串。字符串字面值的类型就是cons…
【最完整系列】Redis-结构篇-跳跃列表
大家知道 redis 五种常用的数据结构有:字符串(string), 散列(hash), 列表(list), 集合(set)和有序集合(sorted set) 。相对而言 sorted set(以下简称为zset) 用的相对较少,它他的实现结构却很有趣,这种结构被称为 跳跃列表…
【最完整系列】Redis-结构篇-不常用结构汇总(番外篇)
上面一段话其实已经很好的概括了 redis 的数据类型和内置功能。下面我就针对数据结构这一点详细说明下。 我们常用的数据结构有 5 种:字符串String、字典Hash、列表List、集合Set、有序集合SortedSet。这几种结构在这里不讲了,之后有文章详细介绍,接下来介绍…
【最完整系列】Redis-结构篇-快速列表
在介绍快速列表之前,建议你要先了解下 ziplist 和 adlist,特别是 ziplist (参考我的文章《【最完整系列】Redis-结构篇-压缩列表》),关于 adlist 下面我会简单解释一下。 如果你对上面的结构还很陌生不熟悉,可以在网上或者随便一本数据结构的书都可以…
【最完整系列】Redis-结构篇-压缩列表
压缩列表 ziplist 在 redis 中的应用也非常广泛,它是我们常用的 zset ,list 和 hash 结构的底层实现之一。当我们的容器对象的元素个数小于一定条件时,redis 会使用 ziplist 的方式储存,来减少内存的使用。 因为 redis 中的集合容器中,…
【最完整系列】Redis-结构篇-字典
在 redis 中我们经常用到的 hash 结构,以及整个 redis 的 db 中 key-value 结构,都是以 dict 的形式存在,也就是字典。 由上面的结构我们可以看到 dict 结构内部包含两个 hashtable(以下简称ht),通常情况下只有一个 ht 是有值…