
java8
文章平均质量分 87
softwareDragon
软件工程师一枚
展开
-
java 时间日期 字符串转Date转LocalDate 后 计算相差天数
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHH"); Date parse = sdf.parse(String.valueOf(temp)); LocalDate taskLocalDate=parse.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); //相差天数...原创 2020-01-17 13:33:05 · 1166 阅读 · 0 评论 -
jdk8 HashMap put方法里执行的动作
1.如果HashMap未被初始化,则初始化 2.对key求Hash值(使用位未运算,效率高),然后再计算下标 3.如果没有碰撞,直接放入桶中(数组中) 4.如果碰撞了,以链表的方式链接到后面 5.如果链表长度超过了阀值8,就把链表转成红黑树 6.如果链表长度低于6,就把红黑树转回链表 7.如果节点已经存在就替换旧值(因key是用set进行存储的) 8.如果桶满了(容量16*加载因子0.75),就需要resize(扩容2倍后重排) ...原创 2020-07-04 11:35:31 · 129 阅读 · 0 评论 -
AtomicLong和LongAdder区别 使用场景
1.在竞争不是很激烈的情况下,AtomicLong和LongAdder这两个类具有相似的特征。但是在竞争激烈的情况下,LongAdder的预期吐出量要高得多,但要消耗更多的空间 2.LongAdder适合的场景是统计求和计数的场景,而且LongAdder基本只提供了add方法,而AtomicLong还具有cas方法 ...原创 2020-06-05 23:22:06 · 1517 阅读 · 0 评论 -
java8 HashMap桶中链表转红黑树为什么选择数字8?
在JDK8及以后的版本中,HashMap引入了红黑树结构,其底层的数据结构变成了数组+链表或数组+红黑树。添加元素时,若桶中链表个数超过8,链表会转换成红黑树。 翻了一下HashMap的源码,发现其源码中有这样一段注释: Because TreeNodes are about twice the size of regular nodes, we use them only when bins ...原创 2020-03-10 16:19:17 · 545 阅读 · 0 评论