摘要: HashSet 日常开发中,如果我们想要过滤重复的元素,通常使用HashSet来实现。HashSet的继承关系如下所示: 成员变量 //底层是由HashMap实现 private transient HashMap<E,Object> map; // 虚拟value private static f 阅读全文
posted @ 2020-08-08 02:12 Reecelin 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 前言 HashMap作为日常开发中最常使用的一个数据结构了,同时个人也认为这是最重要的一个数据结构,因此涉及到数组、链表、Hash算法、红黑树等等,基本HashMap搞懂了,数据结构这块没啥问题了。 概览 先来总览一下HashMap的继承关系吧 public class HashMap<K,V> e 阅读全文
posted @ 2020-08-08 01:22 Reecelin 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 前言 每个进程都拥有自己的用户地址空间,任何一个进程的全局变量在另一个进程中完全不可见,但是内核空间中每个进程都是共享的,所以进程之间要交换数据必须通过内核空间进行。在内核中开辟一块缓冲区,进程1把数据从用户空间拷贝到内核缓冲区,进程2再从内核缓冲区把数据读取走,内核提供的这种机制称之为进程间通信( 阅读全文
posted @ 2020-08-05 21:43 Reecelin 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 前言 学习掘金小册深入理解 TCP 协议:从原理到实战的笔记汇总第二部分 TCP&UDP对比总览 TCP和UDP都是传输层的协议,但二者具有不同的特性,也适用于不同的场景。如下表所示: TCP UDP 可靠性 可靠 不可靠 连接性 面向连接 无连接 数据经过传输之后可能是无序的,TCP协议会将这些无 阅读全文
posted @ 2020-07-29 13:02 Reecelin 阅读(743) 评论(0) 推荐(1) 编辑
摘要: 前言 之前学习掘金小册深入理解 TCP 协议:从原理到实战,以及其他网络相关知识的笔记,一直忘了整理,今天整理一下,梳理一下脉络。 分层模型 OSI七层模型和TCP/IP四层模型? OSI 七层模型 物理层:传输原始的数据比特流、如“0”、“1”信号的电平表示,传输的单位为bit; 数据链路层:对物 阅读全文
posted @ 2020-07-28 00:10 Reecelin 阅读(425) 评论(0) 推荐(0) 编辑
摘要: 前言 在之前的JDK8 ArrayList源码解析P1中提到过,在对ArrayList进行遍历过程中,如果对集合进行结构性修改(增,删),会导致快速失败(fast-fial) 。那什么是fast-fail,什么又是safe-fail呢? fast-fail(快速失败) 在使用for循环遍历一个集合时 阅读全文
posted @ 2020-07-26 16:03 Reecelin 阅读(909) 评论(0) 推荐(0) 编辑
摘要: 概述 CountDownLatch是J.U.C包中提供的一个并发工具类,其主要作用是协调多个线程之间的同步,其可以让一个线程在等待其他线程执行完任务之后再继续执行。 demo1 假设现在有一场考试,考场中有五个人,考试时间是1s,那么监考老师只能等考试时间到了才能收卷。使用CountDownLatc 阅读全文
posted @ 2020-07-26 15:41 Reecelin 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 前言 zset是Redis提供的一个非常特别的数据结构,常用作排行榜等功能。zset在Redis中两种不同的实现,分别是zipList和skipList。zipList前面我们已经介绍过了,这里就不再介绍了。具体使用哪种结构进行存储,规则如下: zipList:需要满足以下两个条件 [score,v 阅读全文
posted @ 2020-07-23 19:59 Reecelin 阅读(9704) 评论(0) 推荐(0) 编辑
摘要: 前言 与Java中的HashSet一样,Redis中的set也是无序且存储的元素不重复。set类型其底层有两种实现方式: 当value是整数值时,且数据量不大时使用inset来存储 其他情况都是用字典dict来存储 inset Redis中inset的结构定义如下所示: typedf struct 阅读全文
posted @ 2020-07-23 01:25 Reecelin 阅读(4803) 评论(0) 推荐(2) 编辑
摘要: 前言 hash在Redis中的底层实现有两种,一种是zipList,这种是当hash结构的V值较小的时候使用的编码方式。这个已经在Redis底层数据结构之list这篇文章中介绍过了。这篇文章主要讲解一下另外一种实现方式,字典dict,这是当hash结构的V值较大时采用的编码方式。 dict 这里又要 阅读全文
posted @ 2020-07-22 17:31 Reecelin 阅读(6290) 评论(0) 推荐(1) 编辑