JavaInterview JavaInterview
首页
指南
分类
标签
归档
  • CSDN (opens new window)
  • 文档集合 (opens new window)
  • 系统架构 (opens new window)
  • 微信号 (opens new window)
  • 公众号 (opens new window)

『Java面试+Java学习』
首页
指南
分类
标签
归档
  • CSDN (opens new window)
  • 文档集合 (opens new window)
  • 系统架构 (opens new window)
  • 微信号 (opens new window)
  • 公众号 (opens new window)
  • 指南
  • 简历

  • Java

  • 面试

  • 算法

  • sourcecode
  • jdk
JavaInterview.cn
2022-04-21
目录

java.util.concurrent.ConcurrentHashMapJava

文章发布较早,内容可能过时,阅读注意甄别。

# 0. 概要

    1. 位移操作

# 1. 位移操作

  1. 通过位移操作(左移右移)确定容量(最大容量,默认容量等)
  2. 通过Runtime.getRuntime().availableProcessors()获得CPU数量,限制某些尺寸
  3. 通过Node<K,V>操作,不暴露,批量任务时,只读遍历。负hash值时,可以有key和value为空。不然key和value不能为空。
    static class Node<K,V> implements Map.Entry<K,V> {
        final int hash;
        final K key;
        volatile V val;
        volatile Node<K,V> next;

1
2
3
4
5
6

# 2. Node操作(增删改查)

  1. volatile修饰的变量
  2. transient修饰的内部类
    // views
    private transient KeySetView<K,V> keySet;
    private transient ValuesView<K,V> values;
    private transient EntrySetView<K,V> entrySet;

1
2
3
4
5
  1. final V putVal(K key, V value, boolean onlyIfAbsent)添加数据方法
    1. 算出key的hashcode值
    2. 初始化表initTable()
    3. 扩容helpTransfer时,Node<K,V>[]数组拷贝赋值
    4. synchronized (f)f是Node<K,V> f,对节点加锁
    5. compareAndSwapLong等控制并发
    6. addCount(1L, binCount);添加到计数中,如果表太小并且尚未调整大小,则启动传输
    7. sun.misc.Unsafe U;加锁控制
          private static final long LOCKSTATE;
          static {
              try {
                  U = sun.misc.Unsafe.getUnsafe();
                  Class<?> k = TreeBin.class;
                  LOCKSTATE = U.objectFieldOffset
                      (k.getDeclaredField("lockState"));
              } catch (Exception e) {
                  throw new Error(e);
              }
          }
      
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
微信 支付宝
#Java
最近更新
01
1686. 石子游戏VI Java
08-18
02
1688. 比赛中的配对次数 Java
08-18
03
1687. 从仓库到码头运输箱子 Java
08-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 JavaInterview.cn
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式