种草了N年的家用服务器总算是观望了一年后购买了Gen10把这棵草给拔掉了!
也算折腾了有一周了,简单记录一下。
初衷就是把家里乱七八糟的的各种设置看看能不能塞到一个机器里,最后也算是基本达成了。
种草了N年的家用服务器总算是观望了一年后购买了Gen10把这棵草给拔掉了!
也算折腾了有一周了,简单记录一下。
初衷就是把家里乱七八糟的的各种设置看看能不能塞到一个机器里,最后也算是基本达成了。
This sample file is meant as a guide only. Do not copy and paste the entire content into your application. Rather, pick only the properties that you need.
COMMON SPRING BOOT PROPERTIES
This sample file is provided as a guideline. Do NOT copy it in its
entirety to your own application. ^^^
HashMap 主要用来存放键值对,它基于哈希表的Map接口实现,是常用的Java集合之一。
JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突).JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树,以减少搜索时间。
JDK1.8 之前 HashMap 底层是 数组和链表 结合在一起使用也就是 链表散列。HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到 hash 值,然后通过 (n - 1) & hash
判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及 key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。
所谓扰动函数指的就是 HashMap 的 hash 方法。使用 hash 方法也就是扰动函数是为了防止一些实现比较差的 hashCode() 方法 换句话说使用扰动函数之后可以减少碰撞。