自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring为什么需要三级缓存

Spring三级缓存机制解析:解决循环依赖与AOP的关键设计 摘要: Spring采用三级缓存机制主要解决循环依赖问题,同时确保AOP等功能的正确性。一级缓存存放初始化完成的Bean,二级缓存存放早期暴露的未完全初始化Bean,三级缓存则存放Bean工厂对象。关键区别在于:二级缓存是静态对象级,而三级缓存的工厂能动态生成代理对象。这种分层设计保证了职责单一、生命周期清晰,避免混用导致的管理混乱。当需要AOP代理时,三级缓存的工厂能延迟决定返回原始对象还是代理对象,解决了二级缓存无法处理动态代理的问题。测试代

2025-08-29 17:35:46 638

原创 设计模式学习(23种都会涵盖,超详细!!!创建型模式完毕)

定义:工厂方法模式,又称工厂模式,多态工厂模式和虚拟构造器模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象主要作用:将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂中完成),即由子类来决定应该实例化(创建)哪一个类解决的问题:工厂一旦生产新产品就需要修改工厂类的方法逻辑,违背了“开放-关闭原则”即简单工厂模式的缺点。

2025-04-27 10:01:04 680

原创 设计模式学习(23种都会涵盖,超详细!!!)

用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里,原型实例指定了要创建的对象的种类。这种方式创建对象非常高效,根本无需指定对象创建的细节。例如,Windows 操作系统的安装通常比较耗时,如果复制就快了很多。

2025-04-23 22:21:30 847

原创 AI大模型推荐(一定能找到适合你的AI)

随着2025年第一季度已经快要结束了,各种AI工具已经相继得到完善了,在这里,我推荐一下最近我使用比较频繁的一些AI工具,来帮助大家找到最适合自己的AI工具。

2025-04-22 12:02:38 1037

原创 PaginationInnerInterceptor使用(Mybatis-plus分页)

最近在编写SQL语句时总是想着偷懒,于是在前不久学习黑马点评时学到可以使用PaginationInnerInterceptor,于是现在我也在自己的项目中进行使用了,但是使用也遇到一些问题,如果你和我的问题一样,希望我的解决办法能给你一点思路。

2025-04-21 17:17:00 958 2

原创 Redis集群模式(优缺点)

简单场景,读多写少:如果业务对数据一致性要求不高,且以读操作为主,主从模式是一个简单易用的选择,能够满足基本的备份和读扩展需求。高可用需求,自动恢复:当需要更高的可用性和自动故障恢复能力时,哨兵模式是更好的选择,它在主从模式的基础上增加了监控和自动切换功能,适用于对系统稳定性要求较高的场景。大规模数据,高并发处理:对于大规模数据存储和高并发读写的需求,集群模式是首选。它通过数据分片和多节点并行处理,提供了强大的扩展性和性能支持,能够应对复杂的业务挑战。

2025-03-23 20:40:19 1159

原创 Redis分布式锁如何实现——简单理解版

在如今开发的某些项目中,多个进程必须以互斥的方式独占共享资源,这时用分布式锁是最直接有效的,分布式锁发展至今,已经有越来越多的项目普及了,也已经被面试官拿出来提问,所以今天我们可以一起来学习一下分布式锁。

2025-03-21 22:41:34 1370

原创 Redis解决缓存击穿问题——两种方法

缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这个时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。

2025-03-19 21:01:25 2001 2

原创 spring源码(bean的实例化)——determineCandidateConstructors篇

determineCandidateConstructors——spring创建实例无法避免的一个方法,大家一起学习,让我们对spring创建bean的过程更加深刻。

2025-03-18 20:42:39 414

原创 蓝桥杯题目——子串简写(只需要5行代码)

题目地址。

2025-03-18 17:12:57 524

原创 美团曾经的两道算法面试题

大家要是有内推码也可以放在我的评论区,供大家一起使用可以吗?这是美团曾经的两道算法面试题,与诸君共勉!现在小美想知道,如果那些未知的元素在区间[l,r][l,r]范围内随机取值的话,数组所有元素之和的最小值和最大值分别是多少?现在,小美希望你回答有多少个i∗ii∗i的完美矩形区域。小美认为一个矩形区域是完美的,当且仅当该区域内 0 的数量恰好等于 1 的数量。小美拿到了一个n∗nn∗n的矩阵,其中每个元素是 0 或者 1。小美拿到了一个由正整数组成的数组,但其中有一些元素是未知的(用 0 来表示)。

2025-03-13 18:24:24 453

原创 Java基础面试题(第四期)——多线程

类记载机制一般分为三个步骤:加载,连接,初始化。

2025-03-08 19:34:11 692

原创 面试题目(第三期)——计算机网络

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的,可靠的、基于字节流的传输层通信协议。TCP旨在在不可靠的互联网环境中为应用程序提供可靠的,顺序的无差错的数据流服务UDP(User Datagram Protocol)是传输层的一个无连接协议,它提供面向事务的简单不可靠信息传输服务。

2025-03-06 20:24:13 767

原创 Java基础面试题(第二期)

MySQL事务的隔离级别包括四种,分别是读未提交(Read Uncommitted)、读已提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable)。每种隔离级别对应不同的并发控制策略,用于解决脏读、不可重复读和幻读等问题。读未提交:最低的隔离级别,允许一个事务读取另一个事务尚未提交的数据,可能导致脏读问题。读已提交:只能读取到已经提交的数据,解决了脏读的问题,但仍然存在不可重复读的问题可重复读。

2025-03-05 11:36:33 949

原创 Java面试基础题

序列化:就是将对象转化成字节流的过程,使对象可以进行持久化存储,网络传输或者缓存,反序列化:反之,就是将字节流转换成对象的过程,就是从存储中读取数据并重新创建不可变类是指在创建后其状态(对象的字段)无法被修改的类 ,一旦对象被创建,它的所有属性都不能被修改。这种类的实例在整个生命周期中都无法更改,一直保持不变。

2025-03-04 20:44:07 882

原创 天梯赛训练题L1-040,L1-017,L1-020

专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。

2025-01-25 11:14:13 592

原创 mybatis动态语句

经常遇到很多按照很多查询条件进行查询的情况,比如智联招聘的职位搜索等。其中经常出现很多条件不取值的情况,在后台应该如何完成最终的SQL语句呢?动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。

2024-10-30 22:51:32 1049 1

原创 mybatis多表映射

关联关系配置项关键词所在配置文件和具体位置对一association标签/javaType属性/property属性Mapper配置文件中的resultMap标签内对多collection标签/ofType属性/property属性Mapper配置文件中的resultMap标签内MyBatis基本使用(数据输出)_mybatis 标准输出-优快云博客。

2024-10-23 21:22:49 1178

原创 MyBatis基本使用(数据输出)

数据输出总体上有两种形式:- 增删改操作返回的受影响行数:直接使用 int 或 long 类型接收即可- 查询操作的查询结果我们需要做的是,指定查询的输出数据类型即可!并且插入场景下,实现主键数据回显示!

2024-10-16 20:55:48 1025

原创 MyBatis基本使用(上)

我们可以在mybatis的配置文件使用**settings标签**设置,输出运过程SQL日志!通过查看日志,我们可以判定#{} 和 ${}的输出效果!

2024-10-11 20:53:37 866

原创 SpringMVC知识点(请求数据)

Controller中业务方法的POJO参数的属性与请求参数的name一致,参数会自动映射匹配。服务端要获得请求的参数,有时还需要进行数据的封装,springmvc可以接受如下类型的参数。Controller中的业务方法的参数名称要与请求参数的name一致,参数值会自动映射匹配。Controller中业务方法数组名称与请求参数的name一致,参数值会自动映射匹配。客户端请求参数的格式是:name=value&name=value....获得集合参数时,要将集合参数包装到一个POJO中才可以。

2024-09-24 11:58:36 485

原创 若依实现用户注册并赋予权限(超简单版)

实现这一功能,我们首先就应该想到,用户注册时往往都是普通用户,所以我们可以先根据若依的角色管理创建一个注册默认的角色名,并给他赋予一些基本的功能,那样用户注册之后就只有基本功能了。那么我们就根据这个逻辑一起来学习吧!!!

2024-09-14 20:17:02 1917

原创 cvc-complex-type.2.3: 元素 ‘beans‘ 必须不含字符 [子级], 因为该类型的内容类型为“仅元素”。

遇到这个问题就请仔细翻看每一个配置文件,因为我从网上找的很多都是在配置文件里面多了一些自己没有注意到的没用的东西,我自己也是在配置文件里面多敲了个">",找了半小时才找到,欲哭无泪啊!所以请各位初学者千万别和我一样,一定要细心!

2024-09-11 15:28:45 199

原创 Spring如何干掉xml配置文件(注解替代)

注解开发大大减少了开发者的工作量,也让初学者更容易能够理解。

2024-09-10 11:18:53 554

原创 Java多态

在Java中,多态其实就是指一个接口或父类引用变量可以指向不同的对象实例,并根据对象类执行相应的方法,它允许同一方法进行被不同类继承,然后在不同对象上表现出不同的行为。多态是Java面向对象编程的三大特性之一。

2024-09-07 15:52:54 345 1

空空如也

空空如也

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

TA关注的人

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