![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
文章平均质量分 99
知识分子_
QQ:1149513559
展开
-
HashMap、ConcurretnHashMap面试题详解,源码分析
1,、面试题问题一:为什么hashmap每次扩容大小为2的n次方?因为hashmap在put元素时,会先根据entry的key的hash值 和 数组的长度做一个&与运算,得到一个数组下标,目的是为了确定这个entry存储在数组的哪个位置上。但前提是保证数组下标不超过数组的长度,比如hashmap的初始长度是16,在put第一个元素时,下标应该在0-15之间取值。就以16的数组长度为例, 看一下二进制&运算的过程:15和key的hash进行运算: 高四位 低四位原创 2020-07-21 22:38:44 · 812 阅读 · 0 评论 -
ArrayList为什么线程不安全?说说foreach与iterator时remove的区别
文章目录1. ArrayList 简介2. 构造器3. add方法1. ArrayList 简介 ArrayList作为最基础的集合类,其底层是使用一个动态数组来实现的,这里“动态”的意思是可以动态扩容(注意不会动态缩容)。与HashMap不同的是,ArrayList使用的是1.5倍的扩容策略,而HashMap使用的是2倍的方式;ArrayList的默认初始容量为10,而HashMap为16。 &原创 2020-09-11 15:02:43 · 1206 阅读 · 0 评论 -
java8使用stream操作集合类,如何使用bigDicemal计算工资?
处理map中的value的值为null或空字符串时,可以用以下的工具方法public static Map<String, Object> parseMapForFilter(Map<String, Object> map) { if (map == null) { return null; } else { ...原创 2020-04-21 22:38:38 · 1570 阅读 · 0 评论 -
面试官:HashMap 为什么线程不安全?
面试官:HashMap 为什么线程不安全?前言:我们都知道HashMap是线程不安全的,在多线程环境中不建议使用,但是其线程不安全主要体现在什么地方呢,本文将对该问题进行解密。1.jdk1.7中的HashMap在jdk1.8中对HashMap做了很多优化,这里先分析在jdk1.7中的问题,相信大家都知道在jdk1.7多线程环境下HashMap容易出现死循环,这里我们先用代码来模拟出现死循环的...原创 2020-04-21 09:34:29 · 347 阅读 · 0 评论