redis数据结构学习

String类型

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

struct sds {

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

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

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

初始zookeeper

什么是zk

zk是一个分布式协调服务

zk能做什么

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

java基本类型与包装类型

我们都知道java数据数据类型分为primitive(基本类型)和reference(引用类型),基本类型又都有与之相对应的包装类型,我们先来回顾下八大基本数据类型

基本数据类型

  • byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。
  • short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。
  • int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
  • long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
  • float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
  • double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
  • boolean:只有true和false两个取值。
  • char:16位,存储Unicode码,用单引号赋值。
那么基本类型与它们的包装类有什么区别呢?应该如何选择呢?