自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Jdk动态代理 & Cglib动态代理

总结:jdk代理对象实现了与实际对象一致的接口,重写了这个接口的所有方法。当调用代理对象的代理方法时,执行的就是处理器的invoke方法。这个invoke方法里可以通过反射调用到实际方法。JDK代理基于接口、JDK代理使用反射调用、JDK代理可以代理接口中的默认方法。

2025-08-30 22:38:12 76

原创 【Spring底层分析】Spring AOP补充以及@Transactional注解的底层原理分析

1、@EnableAspectJAutoProxy,依赖springboot自动装配原理。项目中引入了 Spring Boot 的 依赖比如spring-boot-starter-web,这个依赖间接引入了 spring-boot-autoconfigure 这个JAR包,这个JAR包里的 META-INF下的文件中,定义了一长串自动配置类,其中就包括:当springboot启动后,会扫描这个文件里定义的每个类,当处理到AopAutoConfiguration这个类时,做了以下事:总结:@EnableA

2025-08-29 16:31:46 509

原创 【bug修复积累】Spring Bean 生命周期:构造函数中 NPE 的根本原因与 @PostConstruct 的正确使用

bug修复积累

2025-07-17 17:59:55 275

原创 【Java Stream】基本用法学习

由于在公司写代码时,发现有大量地方可以优化为使用stream流的方式写,且更加简洁,因此学习了一下stream的基础语法。Java Stream 是 Java 8 引入的用于处理集合数据的函数式 API,提供了一种高效、声明式的数据处理方式。

2025-07-13 16:59:38 279

原创 【bug修复积累】关于包装类型和基本数据类型的使用

当要进行计算时,如果是null * 100,则会报空指针,因此我们计算时,因尽量使用基本数据类型计算。从mysql查出可能为null,因此用Double接收,要注意xml文件中的returnType也需要是Double类型,以防报错。

2025-07-09 17:51:36 130

原创 【nginx】公司部署项目时引发的nginx简单学习与思考

应用构建可以理解为将应用打包成jar包,jar内置tomcat、所有第三方依赖库、编译后的.class文件。部署实例可以理解为将jar包放到服务器某个目录下,然后启动jar包,jar内置的tomcat也会启动。那么tomcat就会监听端口的所有请求。ok,除了jar包方式,还有容器部署的方式,这个坑后续再补。,这个应用构建是从git上拉取最新项目进行构建的。公司是使用公司内部的开发部署平台进行部署项目的。→ 启动端口监听 → 应用就绪。开发部署平台的使用过程就是需要先。

2025-07-01 15:49:16 449

原创 【Feign】远程调用底层原理

在feign远程调用中,有以下概念:服务消费者、服务提供者、feign客户端。

2025-06-29 15:12:29 939

原创 【Spring底层分析】AOP的cligb代理和jdk代理

aop两种代理方式学习笔记

2025-06-24 17:53:00 615

原创 公司sql优化之减少查询次数、在应用层计算

sql优化

2025-06-20 15:18:47 261

原创 虚拟机恢复快照后,ping不到百度原因解决

记得修改子网ip!

2025-06-12 08:39:43 96

原创 【redis】线程IO模型

redis线程IO模型,非阻塞IO,多路复用学习

2025-06-08 17:53:48 1227

原创 【redis】过期策略 & 懒惰删除

1、定时删除:定期扫描字典,采用贪心的策略,从字典随机抽20个key,删除其中已经过期的key,如果过期的key超过1/2,那么重复上述步骤。当有大量key同时过期,为了避免无限循环扫描,这一个定时删除的任务的时间上限是25ms,但是即使有这个时间上限,仍然会出现积少成多的卡顿。当移除key的指针引用后,key会被立即删除,但是值对象仍在内存中,并且主线程无法再访问这个值对象。2、惰性删除:当客户访问key时,redis就会对key进行过期检查,如果过期,就会立即删除这个key。让后台线程来执行删除。

2025-06-04 08:12:08 309

原创 【Spring底层分析】Spring AOP基本使用+万字底层源码阅读分析

spring aop源码学习

2025-06-02 18:47:11 711

原创 映射写法积累

3、List<PersonParam> -> List<Integer>(取出id)1、对象 -> 对象。

2025-05-20 12:00:55 132

原创 mybatis-plus逻辑删、创建时间、修改时间基础知识补充

即使数据库有自动更新,也建议保留 MyBatis-Plus 的。- 当记录更新时自动将该字段设置为当前时间。这样可以保证应用层和数据库层双重保障。- 设置字段的默认值为当前时间。设置为插入时的当前时间(因为。更新为操作时的当前时间(因为。

2025-05-20 11:22:32 297

原创 Mybatis-Plus Update 注意事项

updateById:在调用updateById方法前,应先从数据库中检索出实体,然后对实体进行变更,最后调用updateById进行保存。

2025-05-15 11:25:07 358

原创 关于mybatisplus返回结果映射不到实体类问题

1、开启驼峰开关,实体类命名字段即使加了注解,也要保证驼峰规则!

2025-05-14 16:40:04 391

原创 关于项目中优化使用ConcurrentHashMap来存储锁对象

关于项目中优化使用ConcurrentHashMap来存储锁对象【应用+底层知识介绍】

2025-05-03 18:26:19 622

原创 【Spring底层分析】Spring IoC

Spring IoC

2025-04-13 16:29:11 861

原创 Lock、ReentrantLock、AQS全面分析,一万加字+详细源码分析截图

Lock、ReentrantLock、AQS

2025-04-03 16:02:02 928

原创 【思维导图】redis

redis、思维导图

2025-02-03 22:48:53 303

原创 【思维导图】并发编程

偏向锁就是当一个线程想要获取锁时,会在对象头中存储这个线程id并且将对象头里的偏向锁标识设置为1,如果下次同一个线程想要再次获取同一把锁时,首轻先判断的就是对象头中的线程id是否与自己的相同,如果相同,则这个线程直接获取锁成功。而如果不同的线程想要获取这把锁,则会将这个偏向锁升级为轻量级锁。乐观锁认为自己在使用数据时不会有其他线程来修改数据,因此在读取数据时不会添加锁,只有修改数据前数据是否有被其他线程修改,如果没有其他线程修改,那么就放心大胆的修改数据,而如果数据被其他线程修改,那么自己就修改数据失败。

2025-01-31 20:53:36 968

原创 【思维导图】mysql-事务

mysql事务、思维导图

2025-01-30 10:50:43 156

原创 【思维导图】mysql-锁

mysql、锁

2025-01-30 10:49:37 157

原创 【思维导图】mysql-索引

mysql索引

2025-01-30 10:43:55 104

原创 【思维导图】java

封装就是使用private修饰属性或方法,这样类的对象就没法直接访问或修改属性,只能通过get/set方法进行访问或修改。封装的好处:降低代码的耦合度,利于维护;通过get/set方法访问属性的时候,可以增加一些额外的逻辑,这是单独访问属性无法做到的。继承就是子类继承父类,子类继承了父类所有的方法和属性。并且子类还可以增加一些自己的属性和方法。继承的好处是提高代码的复用性,比如说一个类想要拥有另一个类的属性和方法,就可以采用继承的方式实现。

2025-01-30 10:40:35 1161

原创 (●ˇ∀ˇ●)思维导图计划~~~

思维导图

2025-01-30 10:24:35 196

原创 Lock和Synchronized的区别,源码分析

Lock锁 vs Synchronized锁

2025-01-23 23:43:37 338

原创 java之序列化与反序列化

序列化与反序列化的理解

2025-01-15 16:07:53 1368

原创 StringBuilder、StringBuffer源码分析

StringBulider、StringBuffer

2025-01-15 16:03:57 337

原创 Linux环境下使用tomcat+nginx部署若依项目

分享部署过程,提供部署过程中出现问题的解决方案。

2024-12-21 22:28:38 1480

原创 Tomcat部署war包项目解决404问题

Tomcat部署项目报404的解决方法

2024-12-21 21:22:59 318

原创 Redisson看门狗机制

看门狗机制源码解读~

2024-12-07 16:40:58 713

原创 AQS底层原理

AQS底层原理

2024-11-26 23:57:38 789

原创 MySQL是怎么解决幻读和不可重复读的?

事务、mvcc、next-key lock、行锁、间隙锁

2024-11-18 22:59:57 1339

原创 jdk1.7的hashmap为什么会出现死循环问题

如果数组的这个下标位置中有元素且判断出这个元素的key与待插入的元素key相等,那么用新元素的value值替换,结束。需要注意的是线程1和线程2的e都指向了key:3这个元素,e.next都指向了key:7这个元素。假设现在线程1挂起,线程2接着执行transfer方法剩余的逻辑,得到如下新扩容后的数组,因为是头插法,导致7和3的位置颠倒了。由于一个线程使用的是头插法进行迁移数据到新开辟的数组中,使得链表中的数据是颠倒的顺序。线程1自己也开了个扩容后的新数组,但是头插法插入元素仍然是用的上图元素的地址。

2024-11-15 18:00:13 475

原创 【redis】-数据结构

redis数据结构、zset、跳表、string、字典

2024-11-08 20:28:25 663 1

原创 mysql笔记-索引

mysql索引

2024-11-04 22:57:45 838

原创 mysql笔记-日志

mysql日志

2024-11-04 19:42:01 1007 1

原创 DFA算法实现敏感词过滤

dfa、敏感词过滤

2024-11-03 16:19:40 842

1定义线性表.exe

1定义线性表.exe

2023-01-24

空空如也

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

TA关注的人

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