• HashSet扩容成红黑树机制


    结论:

    1)HashSet底层是HashMap,第一次添加时,table数组扩容到16,临界值(threshold)是 16*加载因子(loadFactor)是0.75=12

    2)如果table数组使用到了临界值12,就会扩容到16*2=32,新的临界值是32*0.75=24,依次类推(每加一个结点size就加1,加的这个结点可以在同一个链表上也可以是其它链表,只要加了,size就会++,达到12,扩容)

    3)在java8中,如果一条链表的元素个数到达TREEIFY_THRESHOLD(默认是8),并且table的大小 >= MIN_TREEIFY_CAPCITY(默认是64),就会进行树化(红黑树),否则仍然采用数组扩容机制

     断点调试说明:

       在程序的某一行设置一个断点,调试时,程序运行到这一行就会停住,然后你可以一步一步往下调试,调试过程中可以看到各个变量当前的值,出错的话,调试到出错的代码行即显示错误,停下。进行分析找到这个bug

    断点调试的快捷键:

     F7(跳入)F8(跳过) shift + F8(跳出) F9(resume,执行到下一个断点)

    F7:跳入方法内

    F8:逐行执行代码

    shift+F8:跳出方法

    如果f7进不去:

    • 1)可以alt+shift+F7强制进入
    • 2)
  • 相关阅读:
    位向量法、二进制法枚举子集
    jfinal 下载文件时重命名
    Java程序员开发参考资源
    (二)Hive1.2.2
    (一)Hive1.2.2
    YARN资源调度框架
    MapReduce并行编程模型
    HDFS 分布式文件系统
    Kafka
    观察者模式
  • 原文地址:https://www.cnblogs.com/YXBLOGXYY/p/14789379.html
Copyright © 2020-2023  润新知