2026/6/9
嚼嚼嚼。事务拦截器MySQL关键字where和having数据库索引和常见类型还是隔离级别hashmap底层原理扩容机制jdk1.7数组链表jdk1.8之后用数组链表红黑树hashmap为啥重写equals时必须重写hashcode一个hashcode用来找桶equals用来判断同一桶里多个元素是否为同一个key。反正就是hashcode用来找桶equals用来桶内判等。如果只改equals不改hashcode相等对象进不同桶存取全部错乱。多线程之线程创建啊吧啊吧闹心了。这回直接写吧。线程一共三种创建方式1.继承thread类并重写run方法这种就是很简单啊直接调start就启动了。如果在run方法内可以直接用this获取线程对象不然你就嘚用Thread.currentThread。Thread.currentThread.getName这个直接获取名字啦到时候输出调试的时候也能用上。不过这种创建方式的缺点呢就是java是单继承的继承Thread后不能继承其他父类了扩展性很差当任务和线程耦合在一起的时候多个线程执行同一任务无法复用。2.实现Runnable接口并重写run方法这个是接口实现的接口可以多接口任务和线程是分离的同一个Runnable对象可以交给多个线程执行资源共享。适合多线程处理同一任务。他有个缺点就是没有返回值、不能抛出受检异常。3.实现CallableFutureTask有返回、抛异常优点是线程任务有返回值任务内可以抛出checked受检异常。同样解耦任务与线程支持多线程复用任务。缺点是写法很繁琐需要FutureTask包装get()获取子线程执行结束后的返回值后会阻塞主线程。就是那个FutureTask.get()。sleep()和wait()的区别sleep()和wait()所属的类是不同的。sleep()是Thread类静态方法wait()是Object类实例方法所有对象都有。sleep()和wait()的锁行为不一样。sleep休眠时不释放持有的同步锁其他线程无法进入同步块wait调用后立刻释放当前对象锁让其他线程竞争该锁。sleep()和wait()唤醒条件也不一样。sleep时间到自动苏醒中途不能被其他线程唤醒。抛出InterruptedException可打断休眠wait有三种唤醒方式1.等待时长结束自动醒wait(long)2.其他线程调用notify()随机唤醒一个处于WATING的线程3.其他线程调用notifyAll()唤醒全部无超时参数wait()会无限阻塞使用场景限制wait()/notify()/notifyAll()必须写在synchronized同步代码块/同步方法内否则抛出异常。sleep()无同步锁要求任意地方都能调用。状态sleep线程进入TIMED_WAITINGwait线程进入WAITNG/TIMED_WAITING设计目的sleep单纯让当前线程暂停一段时间不涉及线程间通信wait多线程协作、生产者消费者模型线程间等待通知还是索引创建joinSQL – 连接(内连接左连接右连接和全连接)|极客教程Mybatis一级缓存二级缓存我将用最直白最简洁的方式来说说mybatis一级缓存二级缓存。一级缓存是本地缓存默认自动开启的。只在同一个SqlSession里失效。简单说在一次数据库会话中重复查相同条件的数据不会重复访问数据库。一次会话里在第一次查的时候结果就存进一级缓存了再查的时候直接从缓存里拿数据不访问库。但是会话间是不共享的a会话查的东西b会话查不到缓存清空/失效1.同一张表执行insert/update/delete2.手动调用sqlSession.clearCache()清空缓存3.关闭/重新创建会话二级缓存是Mapper缓存默认关闭需要手动打开。同一个Mapper映射文件跨SqlSession共享缓存。就是同一个Mapper所有会话共享。缓存清空/失效1.都这个mapper下任意数据做增删改缓存全部清空二级缓存开启1.全局配置开启二级缓存总开关2.在对应Mapper.xml里加cache/3.实体类实现Serializable序列化接口执行顺序先看二级缓存有没有数据-没有再看一级缓存-还没有就查数据库java反射正常咱们进行操作嘚知道用的哪个类里的代码知道哪个类就创建这个类的对象直接调用方法。java反射你不提前知道这个类是啥但是在程序运行的时候它能反向找着那个类创建那个类的对象调用方法读写属性。是怎么实现的Java的每个类都自带一个class对象程序一运行的时候JVM自动给它生成一个唯一的户口本。这里面包含着这个以下信息这个类叫啥名儿里头有啥变量有哪些方法构造器是谁。这个户口本儿就是反射的根本第一步是要先拿到这个类的户口本使用类名.class直接拿然后第2种就是new类名().get class通过这个类的实例然后来拿户口本第3种就是class.forName后头接上接收一个完整类名输入它的类的名字加载类拿到户口本。平时大多数用的都是第3种方式然后第二步呢就是拿着你这个户口本调取里边所有的信息爱咋操作咋操作这个里头有所有的字段所有的方法还有构造方法。你如果是想调取构造器的话就可以凭空的造出来这个类对象如果想要调用成员方法就可以执行这个方法如果调取成员变量就读取修改变量的值就算你哪怕是私有private的内容加一句setAccessible(true)就可以跳过权限锁照样能访问嗯也就是说你普通的代码你在编译阶段的时候就把类方法都绑定死了。而这个反射呢在运行期间依靠class户口本动态地调取读取类的全部的元数据动态给执行操作索引失效嗯首先什么是索引失效索引失效就是你建了索引但是你Mysql没去用索引是用的全表扫描。这就是索引失效会导致你查询速度很慢索引失效的条件第一个就是索引字段他参与了计算调用了函数。这种情况肯定会失效的。因为索引你存的是原始字段值如果加工的话索引匹配不到了那个值它变了第2种就是隐式类型转换嗯。字符串索引字段查询值不能加单引号数据库强制转换字段整体数据索引会作废。反正就是你不加单引号是不行的你如果不加单引号那就失效了你加单引号才有效第3种就是like通配符%出现在了最左侧。出现在最左侧左模糊的话索引就会失效。如果是右模糊的话索引还是可以用的。name LIKE %老王这个就是左模糊它就失效了。name LIKE 老王%这个是有模糊还是可以用的第4就是联合索引他违反了最左前缀原则。复合索引(a,b,c)查询条件没有最左列的a整个索引他就会失效你少了一个最左边的a它就失效了第5种就是OR条件一侧没有索引。一个字段有索引另外一个字段是没索引你还用all拼接的这个整体索引它就失效了。他就全表扫描了第6种是使用了否定运算符比如!,,NOT IN,IS NOT NULL。数据库判定符合条件数据越多优化器他就直接放弃索引了第7种是MySQL优化器主动放弃索引。查询结果占了整张表数据的20%到30%以上全表扫描的速度比索引速度更快所以它就直接放弃用索引了第8种就是使用order by字段没有遵循联合索引顺序。联合索引(a,b)查询a等于1排序b以外的字段索引是无法支持排序的第9种是字段设置成null大量的数据为空。索引对null支持差筛选is not null大概率失效如何自己检查索引是否失效EXPLAIN SELECT * FROM 表 WHERE 条件type列显示ALL 索引失效ref/range 索引正常MySQL InnoDB索引底层实现设计模式拦截器

相关新闻

如何在iOS 14-16.6.1设备上3分钟安装TrollStore:TrollInstallerX终极指南

如何在iOS 14-16.6.1设备上3分钟安装TrollStore:TrollInstallerX终极指南

如何在iOS 14-16.6.1设备上3分钟安装TrollStore:TrollInstallerX终极指南 【免费下载链接】TrollInstallerX A TrollStore installer for iOS 14.0 - 16.6.1 项目地址: https://gitcode.com/gh_mirrors/tr/TrollInstallerX 还在为iOS越狱应用安装的复杂流程头…

2026/7/16 23:55:00阅读更多 →
C++单元测试框架GoogleTest从零安装到项目集成实战指南

C++单元测试框架GoogleTest从零安装到项目集成实战指南

1. 项目概述:为什么你需要一个靠谱的单元测试框架?在C项目里摸爬滚打这么多年,我见过太多因为一个不起眼的边界条件没处理好,导致线上服务半夜告警,全组人爬起来救火的场景。单元测试,说白了就是给代码上的…

2026/7/16 23:50:00阅读更多 →
Java项目实战:支付宝人脸核身接口的完整接入与业务集成

Java项目实战:支付宝人脸核身接口的完整接入与业务集成

1. 环境准备与基础配置第一次接触支付宝人脸核身接口时,我踩过不少坑。记得当时项目急着上线,结果因为密钥配置问题卡了两天。现在把这些经验整理出来,帮你少走弯路。1.1 企业账号注册与入驻首先得有个企业支付宝账号,个人开发者账…

2026/7/16 23:50:00阅读更多 →
json.loads()一遇到引号就崩溃?90%的Python新手都栽在这个坑里

json.loads()一遇到引号就崩溃?90%的Python新手都栽在这个坑里

json.loads()报错,求指教 博客展示了这样一种于其中的情况, 该情况是在把含有转义字符串的字符转换成为JSON之际, 遭遇到了报错, 代码试着运用json.loads方法去进行转换, 然而运行却是报错了, 给出了详尽的错误信息, 并且还提供了转载的来源。 笔记, 解决, json.l…

2026/7/17 0:55:06阅读更多 →
【DeepSeek实战速成指南】:20年AI工程师亲授,7天掌握模型调用、微调与部署全流程

【DeepSeek实战速成指南】:20年AI工程师亲授,7天掌握模型调用、微调与部署全流程

更多请点击: https://kaifayun.com 第一章:DeepSeek模型生态概览与环境准备 DeepSeek 是由深度求索(DeepSeek)公司推出的开源大语言模型系列,涵盖 DeepSeek-V2、DeepSeek-Coder、DeepSeek-MoE 等多个面向通用理解、代…

2026/7/17 0:55:06阅读更多 →
编写程序,每日记录自我否定的时刻,标注触发事件,生成避坑清单,减少内耗,节约精力用于创新思考。

编写程序,每日记录自我否定的时刻,标注触发事件,生成避坑清单,减少内耗,节约精力用于创新思考。

用 Python 编写一个"自我否定记录 触发事件标注 避坑清单生成" 的心理效能工具。内容严格保持中立、去营销化、可复现,不推荐任何商业产品,不引流。一、实际应用场景描述(Scene)在心理健康与创新能力课程中&#xff0…

2026/7/17 0:55:06阅读更多 →
ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200+节点无坍塌)

ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200+节点无坍塌)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT做思维导图的终极瓶颈突破:基于LLM上下文压缩算法的深度分层技术(实测支持200节点无坍塌) 传统LLM驱动的思维导图生成常在节点超过80个后出现语义坍塌、层级错…

2026/7/17 0:55:06阅读更多 →
免费开源压缩包密码恢复工具:ArchivePasswordTestTool 终极使用指南

免费开源压缩包密码恢复工具:ArchivePasswordTestTool 终极使用指南

免费开源压缩包密码恢复工具:ArchivePasswordTestTool 终极使用指南 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾因…

2026/7/17 0:55:06阅读更多 →
2026 在线语音生成工具哪个好用?整理了几款不踩雷的实用选项

2026 在线语音生成工具哪个好用?整理了几款不踩雷的实用选项

先说明白核心判断 2026年适合职场新人的在线语音生成工具(核心需求是语音转文字结构化整理),没有能打遍所有场景的万能款。针对入职培训记录、产品知识学习、技能快速上手这些核心需求,整理了五款经过实测不踩雷的选项&#xff0…

2026/7/17 0:50:05阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/16 8:28:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/16 6:53:04阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/16 12:02:41阅读更多 →
VS Code 高效配置与个性化定制全攻略

VS Code 高效配置与个性化定制全攻略

1. VS Code 高效配置基础作为一款轻量级但功能强大的代码编辑器,VS Code 的默认配置已经能满足基本需求,但通过合理调整设置可以大幅提升编码效率。我使用 VS Code 已经有五年多时间,期间尝试过各种配置方案,总结出这套适合大多数…

2026/7/17 0:00:01阅读更多 →
从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

从竞赛代码到桌面工具:让 SuperADD 与 SubspaceAD 真正跑进自己的图像

在异常检测领域,很多优秀算法最初都是以研究代码的形式发布的。它们能够在固定测试集上复现实验结果,却不一定能被普通用户直接拿来测试自己的图片。尤其是最近很多算法仅提供在固定测试集的测试环境,而gradio的demo演示也不会提供。 对工程应用和在自己的图片上进行测试来…

2026/7/17 0:00:01阅读更多 →
WinRAR高效配置指南:从基础安装到高级压缩实战

WinRAR高效配置指南:从基础安装到高级压缩实战

前几天帮同事处理一个客户发来的压缩包,解压时系统自带的工具弹出一串乱码,换用 WinRAR 却顺利打开了。这种看似简单的场景,恰恰暴露了不同压缩工具在处理非标准编码、分卷压缩或加密文件时的差异。WinRAR 作为一款老牌工具,真正价…

2026/7/17 0:00:01阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/16 20:13:14阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/16 8:58:42阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/16 17:10:26阅读更多 →