摘要:
HASHMAP(JDK1.7)最详细原理分析(二) 昨天的博客我解释了HASHMAP(JDK1.7)在PUT的时候会发生冲突,而解决冲突的方式就是使用链表,那么我们假设HASHMAP存储结构如下图: 那么节点1和节点2组成了一个链表,那么现在如果再来PUT一个节点3,假设节点3也需要插在这个链表中, 阅读全文
摘要:
Adblocker HASHMAP(JDK1.7)最详细原理分析(一) 在JDK1.7中,HASHMAP是由数组+链表实现的,原理图如下: HashMap map = new HashMap(); // 伪初始化 map.put("键","值"); // 真初始化 HashMap的构造方法在执行时会 阅读全文
摘要:
Adblocker 常见的哈希算法与碰撞算法 哈希算法 直接定址法:直接以关键字k或者k加上某个常数(k+c)作为哈希地址。 数字分析法:提取关键字中取值比较均匀的数字作为哈希地址。 除留余数法:用关键字k除以某个不大于哈希表长度m的数p,将所得余数作为哈希表地址。 分段叠加法:按照哈希表地址位数将 阅读全文
摘要:
String.intern()使用总结 First Blood 先看下面的代码: String s = new String("1"); String s1 = s.intern(); System.out.println(s == s1); 打印结果为: false 对于new String("1 阅读全文
摘要:
Integer.highestOneBit(int i)方法的作用与底层实现 在Integer类中有这么一个方法,你可以给它传入一个数字,它将返回最大的小于等于这个数字的一个2的幂次方数。这个方法就是highestOneBit(int i)。 比如下面的Demo,注意方法的输入与返回值: Syste 阅读全文
摘要:
在平时看各种框架的源码的过程中,经常会看到一些位移运算,所以作为一个Java开发者是一定掌握位移运算的。 正数位移运算 Java中有三个位移运算: <<:左移 >>:右移 >>>:无符号右移我们直接看一下Demo: System.out.println(2 << 1); // 4 System.ou 阅读全文
摘要:
Zookeeper如何解决脑裂问题 什么是脑裂 脑裂(split-brain)就是“大脑分裂”,也就是本来一个“大脑”被拆分了两个或多个“大脑”,我们都知道,如果一个人有多个大脑,并且相互独立的话,那么会导致人体“手舞足蹈”,“不听使唤”。 脑裂通常会出现在集群环境中,比如ElasticSearch 阅读全文
摘要:
Adblocker Zookeeper请求处理原理分析 Zookeeper是可以存储数据的,所以我们可以把它理解一个数据库,实际上它的底层原理本身也和数据库是类似的。 数据库的原理 我们知道,数据库是用来存储数据的,只是数据可以存储在内存中或磁盘中。而Zookeeper实际是结合了这两种的,Zook 阅读全文
摘要:
Zookeeper快速领导者选举原理 本文略长,更适合在电脑端观看,可以收藏或直接关注微信公众号:1点25 人类选举的基本原理 正常情况下,选举是一定要投票的。 我们应该都经历过投票,在投票时我们可能会将票投给和我们关系比较好的人,如果你和几个候选人都比较熟,这种情况下你会将选票投给你认为能力比较强 阅读全文
摘要:
摘要 JDK13中将加入文本块功能。 本篇文章将有以下内容: 新版JDK中加入文本块的动机是什么? 文本块如何使用 文本块的编译 文本块的连接 目标 简化跨越多行的字符串,避免对换行等特殊字符进行转义,简化编写Java程序。 增强Java程序中字符串的可读性。 动机 在Java中,通常需要使用Str 阅读全文