- 博客(6)
- 收藏
- 关注
原创 二叉搜索树代码
二叉搜索树 具有3个属性 数据、左节点、右节点 类似于双向链表,如果学过链表的同学会更容易理解二叉树。一个根-下面子节点最多为2 也可为空。下面的代码 删除时 会删除所有的子节点。查询的时候具有有序性 有3种类型。好了这就是java的二叉搜索树。
2023-07-07 16:14:29
30
原创 HashMap源码分析初始化和put(1)
拿到数组的长度oldcap和hashMap的threshold如果初始化指定了长度则为指定的长度这个长度为2的N次幂最接近当前设置的大小 比如设置为7 则长度为8 ,如果没有指定则为0 默认为16。首先HashMap初始化 默认16位数组长度 阀值为数组长度*0.7 得12 数组在put的时候才会初始化,所以刚开始只记录 loadFactor 和threshold。我们可以看到上面这个方法 这个方法可以保证hashMap的大小永远为2的N次幂最进阶我们设置的值 |包含了^和&的取值。
2023-07-07 16:13:57
78
原创 mysql redo log 刷新
3、buffer pool 满了 达到脏页阈值 innodb_io_capacity 需要释放page cache 如果是正常的页 直接释放 ,如果是脏页 需要进行刷新,刷脏页的过程是要将内存页写入磁盘,由于刷脏页的逻辑会占用 IO 资源并可能影响到了你的更新语句。innodb_flush_log_at_trx_commit:用来控制redo log刷新到磁盘的策略。=1 每次先刷到文件系统os buffer 直接调用fsnyc()写到磁盘上的 redo log。2、 redo log 满了。
2023-07-07 16:13:02
84
原创 LinkedList源码分析
然后在把当前值、和上下节点指向设置为null方便gc回收 注意的一点是如果上一个节点为空,则代表被删除的是第一个节点 所以需要把下一个节点设置为first ,如果下一个节点为空,则代表当前节点是last 所以需要把上一个节点设置为last。如果succ为空则把记录的最后一个pred设置last succ只有在指定元素index 不为0的情况才会不为空 最后新的链表为被拷贝的链表大小修改数+1。如果不为空则把上一个节点指向当前的下一个节点 下一个节点也指向当前上一个节点。
2023-07-07 16:12:07
35
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人