摘要: 按回收理论,可以分为 1.分代回收理论 2.标记清除 3.标记整理清除 4.复制清除 回收器 1.serial 单线程回收垃圾,回收效率较慢 年轻代是复制清除,老年代标记整理清除 2.Parallel Scavenge和Parallel old (JDK8默认老年代和年轻代回收器) 年轻代是复制清除 阅读全文
posted @ 2024-07-04 09:28 辉辉、 阅读(1) 评论(0) 推荐(0) 编辑
摘要: ![](https://img2024.cnblogs.com/blog/1751565/202407/1751565-20240702225825091-789686959.png) 阅读全文
posted @ 2024-07-02 22:58 辉辉、 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1.首先各行数据,都有一个trx_id(事务ID)和回滚指针,形成一个链表数据结构的数据。其实这便是undo.log(回滚日志) 2.当select查询数据的时候,还会生成视图数据。 其中包含未提交的最小事务、未提交事务ID数组、应该分配下一个的事务ID、创建视图的事务ID 首先会生成read vi 阅读全文
posted @ 2024-07-02 22:13 辉辉、 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 1 .id select的查询顺序,如果ID相同则按从上到下。 2.select type 区分查询是简单还是复杂查询 1)simple:简单音询。查询不包含子音询和union explain select *from film where id = 2: 2)primary:复杂查询中最外层的 s 阅读全文
posted @ 2024-07-01 23:51 辉辉、 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 1.Set类型 则hashSet/treeSet/ 2.queue BlockingDeque /Deque/Priority 3.list ArrayList/Vector/linkdList 4.Mpa HashMap/HashTable/TreeMap/ConcurrentMap 阅读全文
posted @ 2024-06-12 21:55 辉辉、 阅读(2) 评论(0) 推荐(0) 编辑
摘要: JDK 1.8版本hash原代码 static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } 1.首先右移16位数 2.异或高位 3.&计算下标 阅读全文
posted @ 2024-05-07 23:02 辉辉、 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 为什么java的hashcode的选用31次方? 以下是java源码部分 public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[] = value; for (int i = 0; i < v 阅读全文
posted @ 2024-05-07 22:41 辉辉、 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1.beanDefinition 首先是承载class的载体,里面包含了许多如是否单例,属性值等内容。以下只是建议代码,重在理解概念 package org.springframework.spring.beans.factory.config; /** * @ClassName : BeanDef 阅读全文
posted @ 2024-04-27 20:03 辉辉、 阅读(3) 评论(0) 推荐(0) 编辑
摘要: ES调优手段 1.设置dynamic为strice(严格模式,put任何新字段都会提示异常),避免ES集群因新增字段导致性能下降。 因此常见的处理方案都是通过建立别名prod_product_xx索引,上线前先将新索引数据初始化新数据,然后在修改索引别名 2._source禁用后可以进行搜索,但无法 阅读全文
posted @ 2024-03-17 21:26 辉辉、 阅读(27) 评论(0) 推荐(0) 编辑
摘要: select 语句在 Go 语言中用于在多个通信操作(发送和接收)之间进行选择。在底层,Go 运行时维护了关于每个 case 的状态信息,这些信息通常存储在 scase 结构体中。下面我将详细解释 select 语句的工作原理,并尝试用文字描述来模拟这一过程,因为直接在这里画图可能不太方便。 首先, 阅读全文
posted @ 2024-03-16 11:25 辉辉、 阅读(41) 评论(0) 推荐(0) 编辑