自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 问答 (3)
  • 收藏
  • 关注

原创 Innodb磁盘结构_聚集索引和二级索引

MySQL中InnoDB存储引擎使用聚集索引优化数据访问性能。聚集索引通常与主键相同,若未定义主键则使用非空的唯一索引,否则自动生成隐藏索引。通过聚集索引可直接访问行数据,减少磁盘I/O。二级索引包含主键值用于回表查询,因此短主键更优。索引能加速WHERE查询、表连接和排序分组操作,但过多索引会影响写入性能。B树是主要索引结构,联合索引遵循最左前缀原则。高选择性索引(列值唯一性高)查询效率更佳。覆盖索引可直接从索引获取数据避免回表。小表或全表扫描场景下索引作用有限。

2025-07-18 17:31:06 549

原创 InnoDB 多版本控制 &慢sql排查(基于MySQL 5.7)

MySQL多版本并发控制(MVCC)与索引优化摘要 MySQL InnoDB通过多版本并发控制(MVCC)实现事务隔离,每行数据包含三个隐藏字段:DB_TRX_ID(事务ID)、DB_ROLL_PTR(回滚指针)和DB_ROW_ID(行ID)。MVCC通过undo log版本链和ReadView机制实现,其中ReadView包含活跃事务ID集合(m_ids)、最小事务ID(min_trx_id)和最大事务ID(max_trx_id)。RC隔离级别通过每次查询生成新ReadView实现"提交读&qu

2025-07-18 16:30:05 677

原创 Maven插件检测全路径名冲突&如何开发Maven插件

摘要:本文介绍了用于检测全路径名冲突类的Maven插件gunpowder-depend的使用方法,包括配置参数如忽略类、忽略依赖等。起因是某次jar包升级导致同名类冲突未被及时发现。文章详细说明了插件配置方式、开发步骤(继承AbstractMojo、添加注解等),并复盘了开发过程中遇到的3个典型问题:mvnDebug命令执行失败、依赖解析失败、Maven配置管理问题,分别给出了原因分析和解决方案。 (99字)

2025-07-18 16:24:56 561

原创 MCP原理与实战

本文介绍了MCP(模型控制协议)的工作原理、优势及其在构建本地智能舆情分析系统中的实际应用。MCP通过标准化协议连接LLM与外部工具,实现了模型能力的扩展和工具的复用性。其核心架构包含MCP主机、客户端和服务器三部分,采用C/S模式工作,通过tools/list和tools/call两个主要API进行交互。文章还详细演示了如何从环境准备到代码实现,构建一个具备新闻检索、情绪分析和邮件推送功能的舆情分析系统,展示了MCP在增强AI应用实用性方面的价值。

2025-07-18 16:16:50 974

原创 本地部署DeepSeek-R1并打通知识库

Ollama是一款开源免费的本地大语言模型部署工具,其优势包括安装简单(支持Mac/Linux/Windows)、模型丰富(支持DeepSeek、Llama3等主流模型)、资源占用低且支持隐私保护。安装只需下载对应平台安装包并验证版本即可使用。通过ollama run命令可快速下载启动模型(如7B参数的deepseek-r1仅需4.7GB空间),还提供模型管理、停止运行等命令行操作。Java开发者可通过Spring Boot集成Ollama ChatModel实现AI对话功能,示例展示了如何调用本地模型接口

2025-07-18 14:59:10 731

原创 mysql 慢查询调优实战——between and

SQL报警慢查询原SQL索引信息explain分析,发现没走上面的索引。

2024-07-30 12:42:22 678

原创 java: 不兼容的类型: java.util.List<capture#1, 共 AA>无法转换为java.util.List<capture#2, 共 ? BB>

代码有点简陋,大概是这么个意思。

2024-04-26 18:27:50 1098

原创 spring使用validator不生效

其他文章说了很多遍的引包、加注解、异常拦截器以外补充一点:需要创建一个bean。

2024-04-26 17:46:36 270

原创 记录RK键盘蓝牙搜索不到

Q键快速闪烁等待回连但是蓝牙搜索不到。使用手机尝试搜索,依旧失败。

2024-03-25 17:47:25 1838 2

原创 A fatal error has been detected by the Java Runtime Environment

C2编译器CompilerThread2线程在执行URLEncodedUtils::urlDecode时试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据。直接找到urlDecode所在的包,然后升级到新版本(我也不知道老版本运行这么久了怎么突然有问题)hs_err_pid795.log(只截取了重要信息)我们可以在其中捕捉到一些重要信息。

2024-02-26 14:03:45 1660

原创 mysql 慢查询调优实战——ORDER BY

比如分页50条查询,数据A和B都符合筛选条件,查第一页的时候数据A返回在第50条,查第二页的时候第一条希望返回数据B,结果返回的还是数据A。这是因为在包含排序的情况下,数据库引擎可能认为通过覆盖索引并不会带来额外的性能提升,而直接进行全表扫描可能更为高效。在 MySQL 中,当执行带有 ORDER BY 子句的查询时,数据库引擎可能会选择不使用二级索引而进行全表扫描。在上线之前校验过,是可以走索引的,可能由于最近数据量的变化,mysql的优化策略变更导致不走二级索引量。原sql、方案一、方案二、方案三。

2024-01-25 17:40:04 1465 3

原创 多线程下文件输出流被关闭:IOException:Stream closed

1、改为方法局部变量2、使用本地线程

2023-03-30 09:23:58 3096

原创 透过源码捋清Spring如何解决循环依赖

相信不少小伙伴在面试过程中被问到过这个问题,也有不少小伙伴看到这个问题会脱口而出:三级缓存!但是,你真的了解spring解决循环依赖的过程吗?三级缓存是哪三级呢?他们是如何发挥作用的呢?

2023-03-05 20:01:02 3370 4

原创 错误的时间被SimpleDateFormat转化为正确时间

关闭宽松匹配:simpleDateFormat.setLenient(false);2023年的2月29日被自动转化为了3月1日。

2023-02-15 16:04:51 1506

原创 练习Mockito单元测试

源方法父类测试类

2022-12-30 17:00:37 486

原创 大数据量导出,CountDownLatch线程交互问题

导出数据量过大时会造成接口超时异常,所以我们希望分页进行导出。

2022-12-21 21:32:35 504

转载 恢复被删除本地分支

git checkout - b < 分支名 > < 操作id >-b参数为新建并切换,相当于git branch < 分支名 > git checkout < 分支名 >

2022-08-31 13:29:37 566

原创 系统架构设计师学习笔记——软件架构设计_重点备忘录

架构的本质1、软件架构为软件系统提供了2、软件架构风格是特定应用领域的,架构定义架构的作用1、软件架构是2、软件架构是,通过研究软件架构可能预测软件的质量3、软件架构使推理和控制的更改更加简单,

2022-08-21 21:26:47 1079

原创 系统架构设计师学习笔记——软件工程_重点备忘录

自顶向下不需要额外写驱动模块,自底向上不需要写桩模块。

2022-08-19 22:48:10 750

原创 系统架构设计师学习笔记——企业信息化战略与实施_重点备忘录

决策支持系统是辅助决策者通过数据、模型和知识,以人机交互方式进行班接过话或非结构化决策的计算机应用系统。结构化决策:指对某一决策过程的规则进行确定性描述与建模,以适当的算法产生决策方案,并能从多种方案中选择最优解。,调用各种资源和分析工具,帮助决策者提高决策水平和质量。非结构化决策:决策过程复杂,不可能用确定的建模和语言描述决策过程,没有所谓最优解。业务流程三个要素:实体、对象、活动。基于BPR的战略规划:战略规划、流程规划、数据规划、功能规划、系统实施。2、物流管理(分销、采购、库存管理)

2022-08-19 11:10:21 724

原创 系统架构设计师学习笔记——企业信息化战略与实施

客观性:也叫真实性,不符合事实的信息不仅没有价值,还有副作用动态性:信息随着事件的变化而变化层次性:信息可分为战略级、管理级和操作级传递性:信息再时间上的传递既是存储,再空间上的传递既是转移和扩散滞后性:信息是数据加工后的产物,所以相对数据有滞后性阔压性:信息和实物不同,既可以扩散也可以压缩分享性:信息可以分享,这和物质不同,并且信息分享具有非零和性。...

2022-08-10 22:41:23 894

原创 系统架构设计师学习笔记——软件工程

逐步分解求精严格分阶段,阶段产出标准化。

2022-08-09 21:26:02 575 1

原创 JVM学习笔记——垃圾回收器

新生代收集器:Serial、ParNew、Parallel Scavenge老年代收集器:Serial Old、Parallel Old、CMS整堆收集器:G1-XX:+PrintCcommandLineFlags 查看命令行相关参数,包括垃圾收集器使用命令行指令:jinfo -flag相关垃圾收集器参数 进程IDserial收集器作为HotSpot中Client模式下的默认新生代垃圾收集器。Serial收集器采用复制算法、串行回收和“stop-the-word”机制的方式回收内存。除了年轻代之

2022-07-09 04:23:41 401

转载 java:程序包不存在

下面语句含义:查找jar包先在本地仓库查找并添加下列信息原文档发文助手说太短了不让发,真是智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智障智

2022-06-23 10:41:47 500

原创 请确保swagger资源接口正确.

1、启动其他项目,访问没问题——排除base项目中关于swagger的配置问题2、切换到其他分支,访问没问题3、检查两个分支不同之处——太多了,检查不过来4、检查本项目SwaggerConfig——没找到不知道谁把SwaggerConfig给删掉了,补充回来即可......

2022-06-06 16:15:15 3231

原创 JVM学习——垃圾回收相关概念描述

System.gc()默认情况下,通过System.gc()捉着Runtime,getRuntime().gc()的调用,会显示触发Full GC,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存然而System,gc()附带一个免责声明,无法保证对垃圾收集器的调用(提醒jvm的垃圾回收器执行gc,但不确定是否马上执行)JVM实现者可以通过System.gc()调用来决定JVM的GC行为。而一般情况下,垃圾回收是自动进行的,无需手动触发,否则过于麻烦。再一些特殊情况下,如我们正在编写一个性能

2022-06-04 22:07:08 273

原创 List和List<Object>和List<?>有什么区别?

无论什么list,在添加的时候都是当作object存入,在取出的时候强转为指定类型。因为list实际就是一个数组,数组无法存不同数据类型。对应字节码关键字节码

2022-06-02 16:29:46 667

原创 JVM学习笔记——垃圾回收

什么是垃圾?在程序运行中没有任何指针指向的对象,这个对象就是要被回收的垃圾垃圾回收算法标记阶段在垃圾回收之前,首先要区分出内存中那些事存活对象,那些是死亡对象。只有标记为已经死亡的对象gc才会进行垃圾回收,释放其所占用的空间,因此这个过程我们称为垃圾标记阶段引用计数算法对每个对象保存一个整形的引用计数器属性。用于记录对象被引用的情况对于一个对象A,只要任何一个对象引用了A,A的引用计数器就加一;当引用失效时,引用计数器就减一。只要对象A的引用计数器的值为0,即表示对象A不可能再被使用,可进行回

2022-05-27 09:05:10 157

原创 Failed to introspect Class [xxx.xxx] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]

错误提示Error creating bean with name ‘xxx.xxx’: Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [xxx.xxx] from ClassLoader [sun.misc.Launcher$AppClassLoader@18b4aac2]查找过程1、点击蓝色路径,可以跟到类里2、切换

2022-05-07 08:26:09 11161

原创 JVM学习笔记——String

字符串常量池中是不会存储相同内容字符串的,因为Spring Pool是一个HashtableString的String Pool是一个固定大小的Hashtable。如果放进Spring Pool的String非常多,就会造成Hashtable冲突严重,导致链表很长,链表长就会影响调用String.intern时性能会大幅下降。使用-XX:StringTableSize可以设置HashTable长度。jdk8中StringTable默认是60013,1009是可设置的最小值String内存分配java

2022-05-04 10:32:12 235

原创 JVM学习笔记——执行引擎

执行引擎是java虚拟机核心组成之一“虚拟机”是一个相对于“物理机”的概念,这两种机器都有执行代码的能力,其区别是物理机的执行引擎是建立在处理器、缓存、指令集、和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约的定制指令集和执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式JVM的主要任务是负责装载字节码到内部,但字节码并不能直接运行在操作系统上,因为字节码并非等价于本地机器指令,它内部包含的仅仅只是一些能被JVM识别的字节码指令、符号表、以及其他辅助信息那

2022-05-03 15:18:57 1395

原创 JVM学习笔记——对象的实例化、内存布局与访问定位

创建对象的方式直接new反射克隆反序列化第三方库(如Objenesis)创建对象步骤判断对象是否以及加载、连接、初始化为对象分配内存如果规整:指针碰撞(标记压缩)如果不规整:空闲列表法(标记清除)处理并发安全问题采用CAS失败重试、区域加锁保证更新原子性每个线程分配一块TLAB初始化分配到的空间属性设置默认值,保证对象实例在不赋值时可以直接使用设置对象的对象头执行init方法进行初始化对象内存布局对象头(Header)运行时元数据哈希值GC分代年龄锁状

2022-05-03 09:10:58 205

原创 JVM学习笔记——方法区

栈、堆、方法区的交互关系方法区的基本理解方法区与堆一样是线程共享区域方法去在jvm启动时被创建,并且他实际的物理内存空间中和堆一样可以是不连续的方法区的大小跟堆空间一样,可以选择固定大小或者可扩展方法区大小决定了系统可以保存多少个类,如果定义了太多的类导致方法区溢出,同样会抛出内存溢出错误关闭JVM会释放这个区域的内存方法区的演进jdk7和之前,习惯性把方法区称为永久代。jdk8以后使用元空间代替了永久代本质上方法区和永久代并不相等。仅对于hotspot而言。《Java虚拟机规范》对如

2022-05-02 10:57:44 331

原创 JVM学习笔记——堆

一个JVM实例只有一个堆空间,堆也是java内存管理的核心区域。堆可以处于物理上不连续的内存空间中,但是逻辑上应该视为连续的。所有线程共享堆空间,但是还可以划分线程私有的缓冲区(TLAB)堆空间大小设置-Xms:用于表示堆区起始内存;-Xmx:表示堆区最大内存通常-Xms和-Xmx设置相同值,为了在java垃圾回收之后不需要重新分割计算堆区大小,减小内存震荡,从而提高性能默认情况,初始大小:电脑物理内存/64;最大大小:电脑物理内存/4查看设置参数方式一方式二加参数,-XX:+Print

2022-04-28 08:18:46 413

原创 JVM学习笔记——虚拟机栈

局部变量表定义为一个数字数组,主要用于存储方法参数和定义在方法体内部的局部变量(包括基本数据类型,对象引用以及returnAddress)由于局部变量表建立在线程之上,是线程私有,所以不存在线程安全问题局部变量表大小为编译器确定,运行期不改变大小操作数栈动态链接(指向运行时常量池的动态引用)方法返回地址附加信息...

2022-04-25 18:22:47 234

原创 线程池原理及源码分析

创建线程池方式ExecutorService executorService = Executors.newCachedThreadPool();//快 ExecutorService executorService1 = Executors.newFixedThreadPool(10);//第二快 ExecutorService executorService2 = Executors.newSingleThreadExecutor();//慢实际上他们都是n.

2022-03-09 10:07:21 224

原创 JVM学习笔记——内存结构以及执行流程

类加载子系统加载的类信息存放在方法区中,除了类信息方法区还会存放运行时常量池信息,包括字符串字面量和数字常量。jvm规范不代表jvm一定这么实现,例如HotSpot VM1.7之前使用永久代来实现方法区,1.8之后使用元空间,就像接口和类的关系,元空间是实现方法区的实现类。元空间没有使用堆内存,而是与堆不相连的本地内存区域。所以,理论上系统可以使用的内存有多大,元空间就有多大,所以不会出现永久代存在时的内存溢出问题。类的加载过程:![在这里插入图片描述](https://img-blo.

2022-03-05 20:51:47 405

原创 Mysql索引创建原理与优化

Innodb存储引擎Innope stores all rcords inside a fixed-size unit which i commonl called a "page though InmnoCB sometimes cals it a “block” instead.Ccurrentyal ages arethe same size,16KB.Innope将所有RCORD存储在一个固定大小的单元中,我通常将其称为“页面”,但Innocb有时会将其称为“块”。大小为16KB他的数据结

2022-03-05 08:54:13 272 1

原创 windows10一站式安装docker

windows10安装docker(本机为MateBook D 14)虚拟化1、打开bois虚拟化2、打开win10自带虚拟化问题:突然发现我没有Hyper-V下载docker问题:WSL 2 installation is incomplete虚拟化1、打开bois虚拟化开机按f12进入bios页面,将Virtualization Technology设置为enable2、打开win10自带虚拟化问题:突然发现我没有Hyper-V将以下内容搞成一个cmd文件,运行后重启pushd "

2022-02-07 13:06:02 825

原创 保姆级对接顺丰的聚顺

针对聚顺的复制就能用的Java版本代码

2021-10-29 21:16:46 781

gcviewer的win版本

gcviewer的win版本

2022-12-23

gcviewer的mac版本

gcviewer的mac版本

2022-12-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除