摘要:
环境: JDK :17.0.7 Springboot: 3.1.0 Junit: 5 问题: 运行mvn clean install 时在maven-surefire-plugin: test 阶段失败。The forked VM terminated without prperly saying 阅读全文
摘要:
本篇重点 1. 什么是堆,有什么特性? 2. 堆排序概述 3. 堆排序图解 4. 代码 5. 堆排序时间复杂度/空间复杂度/稳定性 6. 堆排序/堆适用场景 什么是堆 1. 堆是完全二叉树。一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1≤i≤n)的 阅读全文
![手撕堆排序(含图解,代码,复杂度分析,使用场景)](https://img2022.cnblogs.com/blog/833092/202210/833092-20221007101428622-706631019.png)
摘要:
摘要 1. 快速排序其实也是分而治之的思想 2. 快速排序是递归的 3. 首先找一个基准点,把比基准点小的数字都放到它的左边,比它大的数字都放在它的右边,一趟下来基准点的位置找到了,且它左边的数字小于(等于)它,右边的数字大于(等于)它。 再递归地对它左边的数字和右边的数字做同样的操作,直到递归结束 阅读全文
![手撕快速排序(含图解和两种实现代码含改进)](https://img2022.cnblogs.com/blog/833092/202209/833092-20220926105434213-158501.png)
摘要:
前言 在上一篇 Java 中HashMap详解(含HashTable, ConcurrentHashMap) 中提到在map.put(key, value)的过程中,计算完key的hash值, 是通过hash & (n-1)来得出该元素在Node数组中的下标的,其中n是Node数组的长度。 其实我们 阅读全文
![HashMap的哈希函数为何用(n - 1) & hash](https://img2022.cnblogs.com/blog/833092/202209/833092-20220917110823509-1086318655.png)
摘要:
本篇重点: 1.HashMap的存储结构 2.HashMap的put和get操作过程 3.HashMap的扩容 4.关于transient关键字 5.HashMap, HashTable, ConcurrentHashMap 对照 6.关于volatile关键字 HashMap的存储结构 1. Ha 阅读全文
![Java 中HashMap详解(含HashTable, ConcurrentHashMap)](https://img2022.cnblogs.com/blog/833092/202209/833092-20220914120308486-1197264433.png)
摘要:
什么是不可变类 1. 不可变类是指类的实例一经创建完成,这个实例的内容就不会改变。 2. Java中的String和八个基本类型的包装类(Integer, Short, Byte, Long, Double, Float,Boolean,Char)都是不可变类 3.不可变类 vs 不可变变量: 二者 阅读全文
摘要:
本篇重点(tips): 1. String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 2. String Pool是Heap(堆)中的一块特殊空间(JDK 1.7 之前不是,是在PermGen里面,从1.7开始在heap里面了),存储不重复的String 常量 3. 阅读全文
![Java String Pool--String s = new String("a") 到底创建了几个对象?](https://img2022.cnblogs.com/blog/833092/202209/833092-20220904103101769-1942213625.png)