HashMap深入学习

本文主要是在学习了这篇文章之后( https://javadoop.com/post/hashmap ), 自己对 hashmap 有了更深认识 这位大佬写得非常棒,自己再参照 jdk 源码学习梳理吸收一下。

数据结构

我们都知道数组的查询效率高插入删除效率低,链表的插入删除效率高查询效率低,hashmap是组合了数组和链表的优点,插入和删除都在O(1)的时间复杂度




(图片来自维基百科)

redis数据结构学习

String类型

我们先看下redis源码中的sds的结构

struct sds {

    //记录buf数组中已使用的字节的数量
    int len;

    //记录buf数组中未使用字节的数量
    int free;

    //字节数组,用于保存字符串
    char buf[];
}

初始zookeeper

什么是zk

zk是一个分布式协调服务

zk能做什么

  • 数据发布订阅
  • 负载均衡
  • 命名服务
  • 分布式锁
  • 分布式队列
  • 集群管理
  • Master选举
  • 分布式协调/通知