12 2022 档案
摘要:InheritableThreadLocal详解 1、简介 在上一篇 ThreadLocal详解 中,我们详细介绍了ThreadLocal原理及设计,从源码层面上分析了ThreadLocal。但由于ThreadLocal设计之初就是为了绑定当前线程,如果希望当前线程的ThreadLocal能够被子线
阅读全文
摘要:ThreadLocal详解 1、简介 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal
阅读全文
摘要:图解 索引覆盖、索引下推、如何避免索引失效 为了更好地进行解释,我创建了一个存储引擎为InnoDB的表user_innodb,并批量初始化了500W+条数据。包含主键id、姓名字段(name)、性别字段(gender,用0,1表示不同性别)、手机号字段(phone),并为name和phone字段创建
阅读全文
摘要:查询执行计划: 执行查询语句之前,MySQL查询优化器会基于cost成本对一条查询语句进行优化,并生成一个执行计划。如果创建的索引太多,优化器会计算每个索引的搜索成本,导致在分析过程中耗时太多,最终影响查询语句的执行效率。 查询中,对索引扫描是在存储引擎中进行的,而对数据记录的比较是在Server层
阅读全文
摘要:lombok之@Accessors用法 lombok的@Accessors注解,打在pojo类上,实现setter方法的链式调用,特别是在初始化对象实例时,可以实现@Builder注解的部分功能,非常方便。 注意:有些框架,比如json序列化类库等,需要调用getter、setter,所以建议配合@
阅读全文
摘要:背景:有些冷门场景下,需要将json字符串以字符串的形式传递给后台接口,后台直接用String去读取,由于长度、包含特殊字符等原因,放在url、form字段都不太合适,或者需要繁琐的转换,急需一种能直接传递字符串的方式。 源码: package com.yang.control.os.control
阅读全文
摘要:实现代码: package com.yang.restdemo.state; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.
阅读全文
摘要:Maven构建过程 转载自:https://www.jianshu.com/p/12673e6b9708 一、Maven 构建生命周期 1.1 简介 项目构建的生命周期概念在Maven之前就已经存在了。软件开发人员每天都要对项目进行清理、编译、测试、打包以及安装部署。 虽然每个软件开发人员都做相关的
阅读全文
摘要:安装与操作系统相匹配的graal-vm(建议最新版本),并将graal-vm设为系统默认java运行环境。 创建一个spring-boot3项目,项目sdk版本设为graal-vm,只引入web包, pom.xml如下(尤其需要追加maven的graalvm编译插件,可以从spring-boot-s
阅读全文