会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
迷你世界
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
3
4
5
6
7
8
9
10
11
···
13
下一页
2019年12月26日
AVL树、红黑树
摘要: AVL树: https://mp.weixin.qq.com/s?__biz=Mzg2NzA4MTkxNQ==&mid=2247485220&idx=1&sn=7bca40ca5a3e703f6c9f89eb0f9f2be4&scene=21#wechat_redirect 红黑树: https:/
阅读全文
posted @ 2019-12-26 14:11 朱子威
阅读(154)
评论(0)
推荐(0)
2019年12月25日
HashMap扩容
摘要: 深入理解HashMap+ConcurrentHashMap的扩容策略 前言 理解HashMap和ConcurrentHashMap的重点在于: (1)理解HashMap的数据结构的设计和实现思路 (2)在(1)的基础上,理解ConcurrentHashMap的并发安全的设计和实现思路 前面的文章已经
阅读全文
posted @ 2019-12-25 16:11 朱子威
阅读(945)
评论(0)
推荐(0)
ConcurrentHashMap源码解析
摘要: Java7 中实现的 ConcurrentHashMap 说实话还是比较复杂的,Java8 对 ConcurrentHashMap 进行了比较大的改动。建议读者可以参考 Java8 中 HashMap 相对于 Java7 HashMap 的改动,对于 ConcurrentHashMap,Java8
阅读全文
posted @ 2019-12-25 14:48 朱子威
阅读(469)
评论(0)
推荐(0)
HashMap源码解析
摘要: Java8 HashMap Java8 对 HashMap 进行了一些修改,最大的不同就是利用了红黑树,所以其由 数组+链表+红黑树 组成。 根据 Java7 HashMap 的介绍,我们知道,查找的时候,根据 hash 值我们能够快速定位到数组的具体下标,但是之后的话,需要顺着链表一个个比较下去才
阅读全文
posted @ 2019-12-25 14:09 朱子威
阅读(226)
评论(0)
推荐(0)
HashMap、HashTable、SycronizedMap、ConcurrentHashMap、ConcurrentSkipListMap简单总结
摘要: 1、默认容量? HashTable默认容量为11,计算hash的方式为如下: int hash = key.hashCode();int index = (hash & 0x7FFFFFFF) % tab.length; 根据证明,对素数或奇数直接取模,分布的会更均匀。其它Map的默认容量都为16,
阅读全文
posted @ 2019-12-25 11:23 朱子威
阅读(437)
评论(0)
推荐(0)
HashMap的hash分析
摘要: 哈希 Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来唯一的确定输入值。简单的说就是一种将任意长
阅读全文
posted @ 2019-12-25 10:47 朱子威
阅读(848)
评论(0)
推荐(0)
HashMap默认容量为何为16?
摘要: 什么是容量 在Java中,保存数据有两种比较简单的数据结构:数组和链表。数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难,插入和删除容易。HashMap就是将数组和链表组合在一起,发挥了两者的优势,我们可以将其理解为链表的数组。在HashMap中,有两个比较容易混淆的关键字段:siz
阅读全文
posted @ 2019-12-25 10:29 朱子威
阅读(4274)
评论(3)
推荐(0)
2019年12月24日
CPU指令重排序与MESI缓存一致性
摘要: 一、重排序场景 class ResortDemo { int a = 0; boolean flag = false; public void writer() { a = 1; //1 flag = true; //2 } Public void reader() { if (flag) { //
阅读全文
posted @ 2019-12-24 16:34 朱子威
阅读(470)
评论(0)
推荐(0)
JMM简单解析(重排序、volitale与final的内存语义、syncronized锁升级)
摘要: 1.并发编程领域的关键问题 1.1 线程之间的通信 线程的通信是指线程之间以何种机制来交换信息。在编程中,线程之间的通信机制有两种,共享内存和消息传递。 在共享内存的并发模型里,线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信,典型的共享内存通信方式就是通过共享对象进行通
阅读全文
posted @ 2019-12-24 16:32 朱子威
阅读(603)
评论(0)
推荐(0)
2019年12月19日
java 类记载器
摘要: 转载: https://blog.csdn.net/javazejian/article/details/73413292
阅读全文
posted @ 2019-12-19 18:41 朱子威
阅读(244)
评论(0)
推荐(0)
上一页
1
···
3
4
5
6
7
8
9
10
11
···
13
下一页
公告