自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于Spring的八股

SpringBean的初始化过程是Spring容器创建和管理Bean的核心流程,涉及多个阶段和扩展点。以下是完整过程:1.容器启动阶段:(1)加载配置:Spring 容器(如ApplicationContext)加载配置元数据(XML、注解、Java 配置类等),解析出 Bean 的定义信息(BeanDefinition),包括类名、作用域、依赖关系、初始化方法等。

2025-09-04 19:41:46 845

原创 数据库索引和事务

回表是指当查询语句通过二级索引(如普通索引,唯一索引)找到满足条件的“索引键值”后,由于二级索引只存储“索引列值+聚簇索引键(通常是主键)”,无法直接获取查询所需的全部字段值,因此需要再通过聚簇索引(主键索引)查询一次,才能拿到完整数据的过程。无论用主键索引还是普通索引查询,都需要通过 “索引→物理地址” 去磁盘读取数据 —— 这个过程本质是 “一次索引查询 + 一次数据查询”,但由于所有索引结构一致,不存在 “二级索引依赖聚簇索引补全数据” 的逻辑,因此不叫 “回表”。增加索引,并不能明显加快检索速度。

2025-09-01 17:46:19 291

原创 DQL单表查询相关函数

IFNULL(val1,val2):如果val1不为NULL,返回val1,否则返回val2(用于处理空值)IFNULL(val1,val2):如果val1不为NULL,返回val1,否则返回val2(用于处理空值)YEAR(date)/MONTH(date)/DAY(date):提取日期中的年/月/日。IF(expr,val1,val2):如果expr为真,返回val1,否则返回val2。NOW():返回当前日期和时间(格式:YYYY-MM-DD HH:MM:SS)。

2025-08-29 21:02:49 358

原创 HashSet及HashMap底层原理

根据 Java7 HashMap 的讲解可以知道,HashMap 在查找数据的时候,根据 hash 值我们能够快速定位到数组的具体下标,但是之后的话,需要顺着链表一个个比较下去才能找到需要的数据,这样时间复杂度就取决于链表的长度,为O(n)。链表的查询效率(O(n))与红黑树(O(log n))差距不大(例如n=8时,O(8)和O(3)性能接近)。如果该位置上没有其他元素,则直接存放,如果该位置上有其他元素,则需要进行 equals 判断,如果相等,则不再添加,如果不相等,则以链表的方式添加。

2025-08-20 16:50:19 700

原创 四大常用排序算法

3.字符含义:n表示数组长度,n-1表示此次排序需要排几轮,n-i-1表示每轮排序需要比较几次(一比较就交换数据)。(1)时间复杂度:O (n²)(最坏和平均情况),最好情况为 O (n)(已排序数组)。(4)交换次数少(n-1次),适用于数据移动成本较高的场景。(1)时间复杂度:平均 O (nlogn),最坏 O (n²)(2)空间复杂度:O (1)(只需要一个临时变量)(3)稳定性:稳定(相等元素的相对顺序不会改变)。,输的人一直打,直到所有人都上过场):;(1)时间复杂度:O (n²)

2025-08-19 17:13:39 381

原创 面向对象设计原则

通俗来说:“高层模块” 指的是业务逻辑层(如服务类、控制类),“低层模块” 指的是具体实现层(如工具类、数据访问类)。通俗来说:当需要增加新功能时,我们应该通过增加新的代码(例如新的⼦类或实现类)来实现,⽽不是去修改已有的、⼯作良好的代码,避免引入新的 bug 或破坏原有功能。通俗来说:接⼝的设计要“专”,不要设计⼤⽽全的“胖接⼝”,⽽应该根据功能设计多个细粒度的接⼝。如果一个类承担了多个职责,那么当其中一个职责发生变化时,可能会影响到其它职责的实现,这会增加代码的复杂性和耦合度,导致类的维护成本升高。

2025-08-18 22:26:25 720

原创 axios请求

2.特点:请求数据放在请求体(body)中,可传输大量数据(如表单,JSON),不会被缓存,对服务器数据有副作用(会新增资源)(1)支持动态拼接变量:可以通过${变量名}直接在字符串中嵌入变量,无需用+拼接,适合动态URL(地址需要根据变量变化)2.特点:请求参数通常拼接在URL中(也可通过params配置),无请求体(body),浏览器可能缓存结果。(2)支持多行字符串:如果URL很长需要换行(虽然不常见),反引号可以直接换行,无需拼接或转义。(2)获取单个资源详情(如某篇文章、某个用户的信息)

2025-08-15 17:36:39 239

原创 拦截器解释

拦截器的本质是面向切面编程(AOP)的具象化实现,核心思想是“分离关注点”——将通用逻辑(如日志、权限、事务)与业务逻辑解耦,通过 “拦截” 目标操作的执行流程,在不侵入业务代码的前提下增强其功能。(4)环绕拦截(around):完全包裹目标方法,可自定义执行逻辑(如手动决定是否调用目标方法),灵活性最高。(1)请求/操作拦截:在目标方法执行前、执行中或执行后插入自定义逻辑,例如验证权限、记录日志、处理异常等。(2)后置拦截(after):在目标方法正常执行完成后触发,可用于处理返回结果、记录日志等。

2025-08-12 17:12:08 255

原创 Java反射机制详解

(4)动态处理注解与元数据:通过反射可扫描类、方法上的注解(如@Override、@Controller),并执行注解关联的逻辑(如日志记录、权限校验)。(1)性能开销较大:反射操作需要动态解析类信息(如查找方法、字段),跳过了编译期的类型检查,比直接调用(如obj.method())慢 10-100 倍。(5)依赖具体类结构:反射代码依赖类的内部结构(如方法名、参数类型),若类发生修改(如重命名方法),反射代码会抛出异常且编译期无法检测,需手动同步修改。

2025-08-11 21:48:05 480

原创 关系型数据库中存储和操作二叉树

---------------------------验证结果----------------------------------------挂载子节点到祖父节点(示例情况:被删除节点有左子和右子)-------------------------------查询被删除节点的关键信息------------------------------------------删除被删除节点(2)-----------------a.(以删除叶子节点为例)假设删除节点ID=2(左子节点,且无自身子节点),

2025-08-10 22:09:51 934

原创 Vue的cdn模式

Vue模板语法支持文本插值(双大括号)和JavaScript表达式,可实现动态数据绑定。常用指令包括v-bind(属性绑定)、v-on(事件监听)、v-for(循环渲染)、v-if(条件渲染)和v-model(表单双向绑定)。组合式API中,watch函数可监听数据变化(ref、响应式对象等),支持深层监听和错误处理。通过指令和侦听器的配合,Vue实现了高效的DOM更新和状态管理。

2025-08-06 17:02:12 391

原创 JAVA学习——字符串

public String(String original):根据传入的字符串,创建字符串对象;※当使用双引号直接赋值时,系统会检查该字符串在串池中是否存在,若不存在则创建新的,存在的话复用。java.lang.String类代表字符串,Java程序中的所有字符串文字都为此类对象。public String(char[] chs):根据字符数组,创建字符串对象;注:字符串的内容是不是发生改变的,它的对象在创建后不能被更改。※以后只要想比较字符串的内容,就必须要用String里面的方法。

2025-05-25 20:26:28 304

原创 JAVA学习——面向对象

(2)一个代码文件中可以定义多个类,但是只能一个类是public修饰的,public修饰的类名必须是Java代码的文件名称。(1)类名首字母建议大写,英文,有意义,满足驼峰模式,不能用关键字,满足标识符规定;(4)成员方法:提供每一个成员变量对应的set和get方法,若有其他行为也需写上。(3)提供至少两个构造方法(无参构造方法和带全部参数的构造方法);引用数据类型:数据值是存储在其他空间中,自己空间存储的是地址值。(3)没有具体的返回值(不能由return带回结果数据)。

2025-05-17 22:47:32 375

原创 综合案例练习

机票价格按照淡季旺季,头等舱和经济舱收费,输入机票原价,月份和头等舱/经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到末年4月)头等舱7折,经济舱6.5折。选手的最后得分为:去掉最高分,最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。规则:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。定义方法实现随机产生一个5位的验证码,格式:长度为5,前四位是大写字母或者小写字母,最后一位是数字。案例二:找质数(素数)

2025-05-14 17:09:00 457

原创 JAVA学习——方法

定义一个方法copyOfRange(int[] arr,int from,int to)将数组arr中从索引from(包含from)开始,到索引to结束(不包含to)的元素复制到新数组中,将新数组返回。4.方法的返回值类型为void,表示该方法无返回值,无返回值的方法可以省略return语句不写。return 返回值;变量只在所属方法内有效,传递的是真实的数据,形参的改变不影响实际参数的值。传递引用数据类型时,传递的是地址值,形参的改变影响实际参数的值。在栈内存中,先进入的方法后出,后进入的方法先出。

2025-05-10 16:02:02 574

原创 JAVA学习——数组

原因:若数组中的值都为负数,则最后运行结果为0,而0不是数组中的元素,因此max初始值应设置为数组中原本的值。double类型的可存储byte,short,int,long,float,double。定义一个数组存入1,2,3,4,5,交换首尾索引对应的元素(5,4,3,2,1)格式:数据类型[] 数组名=new 数据类型[]{元素1,元素2,……已知数据元素为{33,5,22,44,55},找出其中最大值并打印。四.数组的动态初始化(只指定数组长度,由系统为数组分配出初始值);

2025-05-07 18:08:59 544

原创 循环综合练习

从任意一个数字开始报数,当你要报的数字是包含7/7的倍数时都要说“过”,使用程序在控制台打印出一到一百之间的满足逢七必过规则的数据。键盘录入一个大于等于2的整数x,计算并返回x的平方根。结果只保留整数部分,小数部分将被舍去。程序自动生成一个1~100之间的随机数字,使用程序实现猜出这个数字是多少?

2025-05-06 20:38:36 642

原创 JAVA学习——判断和循环

表达式为将要匹配的值,取值为byte,short,int,char,枚举,string;例:键盘录入两个数字表示一个范围,统计此范围中既能被3整除又能被5整除的数字有多少个?}while(条件判断语句);例:键盘录入女婿酒量,若大于2斤,老丈人给出回应,反之不回应。条件控制语句){循环体语句}值:被匹配的值只能是字面量,不能是变量,给出的值不允许重复;while(条件判断语句){循环体语句;else if(关系表达式2){语句体2;b.若关系表达式的值为true就执行语句体;default:语句体n+1;

2025-05-02 16:06:03 347

原创 “+”操作

含义:取值范围小的和取值范围大的进行运算,小的先提升为大的,再进行运算。(byte,short,char三种类型的数据在运算时都会直接先提升为int,然后再进行运算。1.当“+”操作中出现字符串时,这个“+”是字符串连接符,而不是算术运算符了。当字符+字符/数字时,会把字符通过ASCII码表查询到对应的数字再计算。1+2+“abc”+2+1 结果为“3abc21”。eg.1+99+“年黑马” 结果为“100年黑马”;‘a’+“abc” 结果为“aabc”。三.字符的“+”操作。

2025-05-01 13:10:33 402

原创 JAVA学习——运算符

例:键盘录入两个整数,表示你和你约会对象衣服的时髦度(手动录入0到10之间的整数,不能录其它如果你的时髦程度大于你对象的,则相亲成功为true,否则为false)例:键盘录入两个整数,若其中一个为6,最终结果输出true,若他们的和为6的倍数,最终结果输出true,其他情况都是false。表达式1:表达式2;>>(右移):向右移动,高位补0或1(数值位补0,符号位补跟原数符号相同的符号)3.赋值运算符(= += -= *= /= %=)+=表示加后赋值,eg.a+=b <==>a=a+b。

2025-04-30 21:06:39 654

原创 计算机的存储规则

除基取余法:不断地除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒拼起来。(2)Image图片:通过每一个像素点中的RGB三原色来存储。1*2的0次+0*2的1次+1*2的2次=1+0+4=5。1*8的0次+0*8的1次+1*8的2次=1+64=65。(3)Sound声音:对声音的波形图进行采样再存储。十六进制(0-9,a-f):以0x开头。权次幂从右往左,依次为0,1,2,3……二进制(0和1):以0b开头;十进制(0-9):不加前缀;八进制(0-7):以0开头;(1)任意进制转十进制。

2025-04-29 23:23:45 341

原创 JAVA学习——JAVA基础概念

(2)若要定义long类型的变量,在数据值的后面需要加一个L作为后缀(大写);c.字符串类型:用双引号扩起来的内容,如:“HelloWorld”,“黑马”d.字符类型:用单引号扩起来的,内容只有一个,如:‘A’,‘a’,‘男’1.概念:在程序的执行过程中,其值有可能发生改变的量(数据)b.小数类型:带小数点的数字,如:13.14,-5.21。e.布尔类型:布尔值,表示真假,如:true,false。a.整数类型:不带小数点的数字,如:666,-88。f.空类型:一个特殊的值,空值,如:值是:null。

2025-04-28 17:01:43 626

原创 JAVA学习——JAVA简述

它提供了核心的Java类库和运行环境,像基本的语言特性(数据类型,控制语句等),集合框架,输入输出(I/O)处理,多线程机制,网络编程能力等都包含其中。(3)金融行业应用:如银行的网上银行系统,证券交易系统等,对数据的安全性和准确性有严格要求,Java EE的安全机制和事务处理能力能够满足这些需求。(3)高可扩展性和可靠性:通过集群,分布式等技术,能够轻松应对高并发和大规模数据处理的需求 ,保证系统的稳定运行。(2)电子商务平台:支持在线购物,支付,订单管理等复杂功能,处理大量的用户交易和数据;

2025-04-27 16:19:54 363

空空如也

空空如也

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

TA关注的人

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