![](https://img-blog.csdnimg.cn/2020103117050510.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java核心
Java核心
XuQingHui_JavaBoy
这个作者很懒,什么都没留下…
展开
-
Jdk1.8下ConcurrentHashMap常用方法的源码分析
1.首先从下面这段代码开始分析 ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>(); map.put("123", "1"); map.put("234", "2"); System.out.println(map.get("123")); System.out.println(map.size());2.我们先从put方法看起public V put(K key, V value) {原创 2021-07-13 16:32:55 · 204 阅读 · 0 评论 -
Jdk1.8下HashMap常用方法的源码分析
1.首先是从hashmap中put元素开始分析 HashMap<String, String> map = new HashMap<>(); map.put("123", "1"); map.get("123");2.点击put方法进入到里面public V put(K key, V value) { // hash(key) 计算key对应的hash值 return putVal(hash(key), key, value, false, true);}继原创 2021-07-11 18:58:17 · 105 阅读 · 0 评论 -
Jdk1.7下ConcurrentHashMap常用方法的源码分析
1.首先从下面这段代码的看一下它的构造方法ConcurrentHashMap<String, Object> map = new ConcurrentHashMap<>();map.put("123", "1");2.点击进入到构造方法中 public ConcurrentHashMap() { // 默认容量,默认加载因子,默认并发级别 this(DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_CO原创 2021-07-05 18:31:16 · 174 阅读 · 0 评论 -
Jdk1.7下HashMap常用方法的源码分析
1.首先是从hashmap中put元素开始分析 HashMap<String, String> map = new HashMap<>(); map.put("123", "1"); map.get("123");2.点击put方法进入到里面public V put(K key, V value) { // 初始化动作 if (table == EMPTY_TABLE) { inflateTable(threshold);原创 2021-07-01 15:44:19 · 148 阅读 · 0 评论 -
HashMap 和 Hashtable 的区别
HashMap 允许 key 和 value 为 null,Hashtable 不允许。HashMap 的默认初始容量为 16,Hashtable 为 11。HashMap 的扩容为原来的 2 倍,Hashtable 的扩容为原来的 2 倍加 1。HashMap 是非线程安全的,Hashtable是线程安全的。HashMap 的 hash 值重新计算过,Hashtable 直接使用 hashCode。HashMap 去掉了 Hashtable 中的 contains 方法。HashMap 继承.原创 2021-05-06 18:43:47 · 83 阅读 · 0 评论