摘要: 附录:https://www.liangzl.com/get-article-detail-134315.html 摘要: 我们知道java虚拟机启动时会带有很多的启动参数,Java命令本身就是一个多参数的启动命令。那么具体JVM启动包含哪些参数呢?这篇文章针对java8的情况做一篇汇总解读,包含大 阅读全文
posted @ 2019-06-26 14:21 割肉机 阅读(3803) 评论(1) 推荐(0) 编辑
摘要: 附录: https://www.cnblogs.com/ygj0930/p/6543901.html 一:ConcurrentSkipListMap TreeMap使用红黑树按照key的顺序(自然顺序、自定义顺序)来使得键值对有序存储,但是只能在单线程下安全使用;多线程下想要使键值对按照key的顺序 阅读全文
posted @ 2019-06-26 14:18 割肉机 阅读(1264) 评论(0) 推荐(0) 编辑
摘要: Java中HashMap的初始容量设置: 根据阿里巴巴Java开发手册上建议HashMap初始化时设置已知的大小,如果不超过16个,那么设置成默认大小16: 集合初始化时, 指定集合初始值大小。 说明: HashMap使用HashMap(int initialCapacity)初始化, 正例:ini 阅读全文
posted @ 2019-06-26 14:12 割肉机 阅读(20419) 评论(0) 推荐(1) 编辑
摘要: 在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结构,但是在jdk1.8里 加入了红黑树的实现,当链表的长度大于8时,转换为红黑树 阅读全文
posted @ 2019-06-26 14:11 割肉机 阅读(3779) 评论(0) 推荐(1) 编辑
摘要: HashMap 基本实现(JDK 8 之前) HashMap 通常会用一个指针数组(假设为 table[])来做分散所有的 key,当一个 key 被加入时,会通过 Hash 算法通过 key 算出这个数组的下标 i,然后就把这个 <key, value> 插到 table[i] 中,如果有两个不同 阅读全文
posted @ 2019-06-26 14:07 割肉机 阅读(9067) 评论(0) 推荐(1) 编辑
摘要: 百度了一下,感觉能说清楚的并不多,所以在此记录一下。 首先说一说转换为红黑树的必要性:红黑树的插入、删除和遍历的最坏时间复杂度都是log(n),因此,意外的情况或者恶意使用下导致hashCode()方法的返回值很差时,性能的下降将会是"优雅"的,只要Key具有可比性。 但由于TreeNodes的大小 阅读全文
posted @ 2019-06-26 10:49 割肉机 阅读(8156) 评论(1) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-06-26 10:11 割肉机 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 最近网上出现一个美团面试题:“一个线程OOM后,其他线程还能运行吗?”。我看网上出现了很多不靠谱的答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。 由于题目中给出的OOM,java中OOM又分很多类型;比如:堆溢出(“java.lang.OutOfMe 阅读全文
posted @ 2019-06-26 10:08 割肉机 阅读(1275) 评论(0) 推荐(0) 编辑