自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 MyBatis-Plus 相比 MyBatis 做了哪些增强?为什么项目中会选择使用它?

MyBatis-Plus 是 MyBatis 的 “超集”,通过封装常用操作解决了 MyBatis 的 “繁琐编码” 问题,同时保留了其灵活性。完全兼容 MyBatis 的原有功能,无需修改已有代码即可平滑迁移,开发者仍可使用 MyBatis 的 XML 映射、动态 SQL 等特性。,同时通过封装简化了开发流程,解决了 MyBatis 中大量重复的 CRUD 代码问题。既有开箱即用的基础功能(如分页、逻辑删除),又支持自定义扩展(如手动编写复杂 SQL),平衡了 “便捷性” 和 “灵活性”。

2025-09-29 14:03:03 1151

原创 自动装配和自动配置的区别

维度自动装配(Autowiring)自动配置(Auto-configuration)核心目标解决 Bean 之间的依赖注入问题解决 Bean 的自动创建和配置问题作用阶段Bean 已存在于容器中,处理依赖关联Bean 未创建时,自动注册并初始化组件触发方式@Autowired等注解或 XML 配置及 starter 依赖所属范围Spring 框架原生功能Spring Boot 扩展功能自动配置负责 “把 Bean 放进容器”,自动装配负责 “把容器里的 Bean 关联起来”。

2025-09-29 00:15:00 559

原创 @RequestMapping、@GetMapping、@PostMapping 有什么区别?如何处理请求参数(比如路径参数、请求体、表单参数)?

路径参数:用绑定 URL 中的占位符;请求体(JSON/XML):用绑定到对象;表单 / 查询参数:用绑定键值对;请求头 / Cookie:分别用和。这些注解可单独使用,也可组合使用,覆盖各种参数传递场景。

2025-09-27 18:53:25 1498

原创 SpringMVC的执行流程

(处理器适配器),由适配器负责调用 Handler(解耦 DispatcherServlet 与 Handler 的直接交互)。View 对象结合 Model 中的数据(模型数据),进行视图渲染(将数据填充到视图模板中),生成最终的响应内容(如 HTML、JSON 等)。HandlerAdapter 调用具体的 Handler(即 Controller 中的目标方法),执行核心业务逻辑,处理请求参数(如通过。(处理器映射器),根据请求的 URL、请求方法等信息,查找对应的。

2025-09-27 18:08:31 937

原创 请解释 Spring 中的 IoC 容器和 DI 依赖注入的概念,以及它们解决了什么问题?

总结:IoC 是一种设计思想(反转控制权),DI 是其实现手段,二者共同通过 “容器管理对象和依赖”,解决了传统开发中对象耦合紧密、难以维护的问题,是 Spring 框架实现 “松耦合” 的核心基础。将对象的创建、管理(如生命周期、依赖关系)的控制权从业务代码转移到一个统一的容器(IoC 容器)可以理解为:原本是 “开发者主动创建依赖”,现在变成 “容器主动推送依赖”,控制权发生了反转。容器在创建对象时,自动将其依赖的其他对象(Bean)注入到当前对象中。IoC 字面理解是 “控制反转”,核心是。

2025-09-26 17:00:52 392

原创 AOP 是 Spring 的核心特性之一,你能说说 AOP 的主要概念(如切面、通知、连接点、切入点)吗?实际项目中用过哪些场景(比如日志、事务、权限)?

AOP的一些基本概念和应用场景

2025-09-26 16:55:45 564

原创 Spring 中的 Bean 有哪些作用域?单例 Bean 在多线程环境下会有线程安全问题吗?为什么?

单例 Bean 是 “全局唯一实例”,多线程共享该实例。若 Bean 无状态(无共享变量或变量不可变),线程间没有竞争资源,因此安全。若 Bean 有状态(存在可修改的共享变量),多线程并发修改时会产生竞态条件(Race Condition),导致线程安全问题。解决思路:避免在单例 Bean 中定义可修改的成员变量,尽量设计为无状态(推荐)。若必须使用状态,可通过 ThreadLocal 存储线程私有变量(每个线程操作自己的副本)。

2025-09-25 22:15:57 385

原创 当启用注解@Accessors(chain = true)时BeanUtils.setProperty(t,key,value)不生效的原因分析

若需要链式调用,同时要兼容BeanUtils@Data// Lombok 生成的链式 setter(返回 User)// 手动定义标准 setter(返回 void),供 BeanUtils 使用// 此时需注意:BeanUtils 需指定手动定义的 setter 对应的属性名(可能不符合预期)生成的 setter 方法返回值为当前对象(非 void),而BeanUtils要求 setter 必须返回 void,因此导致属性设置失败。解决方式要么放弃链式调用。

2025-09-25 10:54:02 448

原创 Hash为什么不是链表长度超过8直接形成红黑树

这种设计既保证了 HashMap 在大多数场景下的轻量高效(链表为主),又能在极端冲突场景下通过红黑树维持性能稳定,是 “概率统计” 与 “工程实践” 结合的典型案例。同时,转回链表的阈值设为 6(而非 8),是为了避免 “链表长度在 8 附近波动时频繁触发树与链表的转换”(如从 8→7→8 反复转换,导致性能损耗)。,当数组容量很小时(比如初始容量 16),即使链表长度超过 8,也可能是因为 “哈希冲突集中在少数桶中”(而非元素总量大)。这是一种 “先空间换时间,再结构换时间” 的策略。

2025-09-24 21:23:04 456

原创 创建线程的几种方式

场景需求推荐方式简单场景,无继承需求实现Runnable接口需要线程返回结果实现Callable接口生产环境,多线程并发管理线程池(简单示例或需继承Thread功能继承Thread类(不推荐)

2025-09-24 21:19:52 488

原创 为什么HashMap的初始化容量是16

如果初始容量过小,哈希冲突会更加频繁,导致链表(JDK 1.7 及以前)或者红黑树(JDK 1.8 及以后,当链表长度达到阈值会转化为红黑树)变长,使得操作性能下降。在扩容时,新容量也是 2 的幂次方,通过位运算能高效地重新分配元素到新的哈希桶中,减少扩容操作带来的性能损耗。例如,从容量 16 扩容到 32,只需要对元素的哈希值的某一位进行判断,就可以确定其在新哈希表中的位置。容量为 16 时,在。,通过与哈希值进行按位与运算,可以快速得到在 0 - 15 范围内的索引值,相。,在二进制下,15 是。

2025-09-23 08:36:57 448

原创 MySQL事务机制和隔离级别

MySQL 的隔离级别从低到高分为 4 种,级别越高,并发控制越严格,但性能开销越大隔离级别脏读(Dirty Read)不可重复读(Non-repeatable Read)幻读(Phantom Read)说明读未提交(Read Uncommitted)可能发生可能发生可能发生一个事务可读取另一个未提交的修改,极少使用(如实时数据监控场景)。读已提交(Read Committed)不会发生可能发生可能发生一个事务只能读取另一个已提交的修改(Oracle 默认级别)。

2025-09-23 03:00:00 1831

原创 Java中List转换成Map的两种方式

推荐方式:使用,代码简洁且支持灵活配置。核心要素:明确键(Key)、值(Value)的提取规则,处理可能的重复键冲突。扩展场景:可根据需求转换为不同的Map实现类,或只保留对象的部分属性作为值。

2025-09-22 22:17:43 512

原创 MySQL 锁 学习笔记

是计算机协调或线程的。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,也是一种供许。如何是所有数据库必须解决的一个问题,也是影响数据库的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2025-09-22 19:22:52 364

原创 Linux安装jdk1.8

ip addr。

2025-09-20 11:50:06 224

原创 MySQL触发器

触发器是与表有关的数据库对象,指在 insert/update/delete 之前或之后,触发并执行触发器中定义的 SQL 语句集合。触发器的这种特性可以协助应用在数据库端等操作。使用别名和来引用触发器中发生变化的记录内容,这与其他的数据库是相似的。现在触发器还。

2025-09-18 20:26:49 423

原创 MySQL存储过程 条件判断+循环控制+参数

计算从 1 累加到 n 的值,n 为传入的参数值 (leave 结束所有循环)BEGINEND IF;SELECT sum;END;

2025-09-18 03:00:00 367

原创 MySQL存储过程 语法及变量

用户定义变量是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 “@变量名” 使用就可以。其作用域为当前连接。-- 局部变量-- 声明:declareBEGINEND;

2025-09-17 20:17:08 734

原创 MySQL视图 学习笔记

视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。 通俗的讲,视图只保存了查询的 SQL 逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条 SQL 查询语句上。 1.2.2 创建视图 2-4 LOCAL 三 更新及作用 3-1 更新

2025-09-17 01:15:00 426

原创 Redis进阶 学习笔记

Redis内存淘汰机制是指当内存使用达到上限(可通过maxmemory配置,0为不限制,即服务器内存上限),根据一定的算法来决定淘汰掉哪些数据,以保证新数据的存入。

2025-09-16 17:19:37 1027

原创 Redis数据类型 学习笔记

1.计数器:许多运用都会使用redis作为计数的基础工具,他可以实现快速计数查询缓存的功能,同时数据可以异步落地到其他的数据源。如:视频播放数系统就是使用redis作为视频播放数计数的基础组件2.共享session:出于负载均衡的考虑,分布式服务会将用户信息的访问均衡到不同服务器上,用户刷新一次访问可能会需要重新登录,为避免这个问题可以用redis将用户session集中管理在这种模式下只要保证redis的高可用和扩展性的,每次获取用户更新或查询登录信息都直接从redis中集中获取。

2025-09-16 17:03:20 684

原创 MySQL优化学习笔记

执行分组操作,根据 profession 字段分组在分组操作时,可以通过索引来提高效率。分组操作时,索引的使用也是满足最左前缀法则的。

2025-09-15 22:00:43 1549

原创 MySQL索引学习笔记(4-6章)

在 MySQL 中,PROFILE是一个用于分析 SQL 语句执行细节的工具,主要作用是记录 SQL 语句执行过程中各个阶段的耗时,帮助开发者定位查询性能瓶颈。通过PROFILE可以获取SQL 执行过程中每个步骤(如解析、优化、执行、锁等待等)的耗时。通过分析PROFILE的结果,可以针对性地优化 SQL 语句(如添加索引、调整查询结构等),提升执行效率。

2025-09-14 18:00:36 877

原创 MySQL索引学习笔记(1-3章)

是帮助 MySQL的(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。

2025-09-13 15:50:15 786

原创 MySQL存储引擎学习笔记

在生活中,我们常常可以听到很多引擎.比如汽车引擎,火箭引擎等等.汽车引擎就如同汽车的心脏,没有引擎汽车就无法启动.所以引擎非常重要.那什么是数据库的存储引擎呢?存储引擎就是存储数据、建立索引、更新 / 查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

2025-09-12 21:09:26 802

原创 微服务学习笔记----Sentinel

Sentinel (分布式系统的流量防卫兵) 是阿里开源的一套用于服务容错的综合性解决方案。它以流量 为切入点, 从流量控制、熔断降级、系统负载保护以及实时监控等多个维度来保护服务的稳定性。

2025-09-10 21:31:24 687

原创 微服务学习笔记

微服务架构, 简单的说就是将单体应用进一步拆分,拆分成更小的服务,每个服务都是一个可以独立 运行的项目。微服务架构的常见问题这么多小服务,如何管理他们?(服务注册中心:nacos)这么多小服务,他们之间如何通讯?(同步:spring-cloud-feign/异步:消息队列-RabbitMQ)这么多小服务,客户端怎么访问他们?(负载均衡:Nginx + 网关:spring-cloud-gateway)这么多小服务,一旦出现问题了,应该如何自处理?(服务容错与降级:sentinel)

2025-09-09 17:52:20 934 1

原创 IDEA2025关闭代码自动补全(内联补全)以及通义灵码的仅取消自动补全

代码练习,关闭代码补全

2025-08-26 10:27:34 867

原创 idea已经导入了servlet.api的包为什么还是报错

如果遇到这种jar包已经导入到项目中,却无法识别HttpServlet的情况,直接ALT+回车强行导入这个类就好了。

2025-07-21 18:57:36 199

原创 如何解决Tomcat部署在idea2025上时控制台出现乱码的问题

但是我最近玩的是Idea2025,我不知道它的控制台默认编码集是UTF-8,一直在修改File Encoding里面的编码集,但是都是无用功。后来我就一一比对这两个版本的配置,找了半天才找到这两的区别,话不多说直接上图。由于之前一直用的是Idea2021的破解版,然后它的控制台默认编码集是GBK,我在改完Tomcat的配置文件,从UTF-8改为GBK这个控制台就不会乱码。

2025-07-17 16:32:02 441 1

原创 反射+内省学习笔记

注意:下面红框里面的方法是由@Data注解重写父类的方法属于子类方法,不属于父类方法。,专注于检查 JavaBean 的属性(getter/setter 方法)。在Student类中添加一个静态方法方便测试。

2025-07-15 18:17:45 669

转载 Idea 配置tomcat服务器 如何将localhost:8080/war_exploded中的war_exploded删除

tomcat application context 配置 servlet _war_exploded 删除-优快云博客

2025-04-01 21:23:32 291

原创 Java Stream流 常用API 简单使用

Java 中的 Stream类()是 Java 8 引入的核心特性之一,主要用于对集合、数组等数据源进行。它的核心作用是为复杂的数据操作提供一种高效、简洁且可并行化的编程模型。

2025-03-31 13:52:17 778

原创 IDEA中简单使用Mybatis框架对数据库中的表进行CRUD(增删改查)操作

Mybatis简单使用

2025-03-30 16:34:59 1870

空空如也

空空如也

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

TA关注的人

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