- 博客(21)
- 收藏
- 关注
原创 java高并发高可用场景解决方案
相信大部人初级开发跟我一样,平时接触不到什么高并发场景,虽然也能花心思做,但总是受困于杀鸡用牛刀或工资配不上努力或没时间等。故本人整理一份分场景的高并发解决方案,也会包括高可用场景。
2025-12-10 22:10:48
929
原创 Java常用设计模式 面试必备
本文总结了7种常用的设计模式,分为创建型、结构型、行为型三大类,并提供了具体代码实现。 创建型模式: 单例模式(Spring Bean默认实现) 建造者模式(Lombok的@Builder注解) 工厂模式(Spring IOC容器) 结构型模式: 4. 代理模式(Spring AOP的核心实现) 行为型模式: 5. 策略模式(消除复杂if-else) 6. 模板方法模式(Spring的xxTemplate) 7. 责任链模式(Filter/Interceptor) 文章提供了各种模式的典型代码实现,包括单例
2025-12-10 21:41:04
799
原创 @Async Spring异步代理返回值问题 Null return value from advice does not match primitive return type
文章摘要:本文分析了Spring AOP中@Async注解方法的常见错误"Null return value from advice does not match primitive return type"。当异步方法返回原始类型(int)时,代理会返回null导致类型不匹配异常。提供了两种解决方案:1) 将返回值改为void(推荐方案,符合异步任务"发后不理"特性);2) 改为返回Future<Integer>(适用于需要获取结果的场景)。最终建议将通
2025-12-10 17:14:27
1027
原创 mysql查询性能与原理
MySQL多表联查性能问题分析及优化建议 本文深入分析了MySQL多表联查的性能问题及其优化方案。文章指出,多表联查本身不一定会慢,但在数据量大或查询方式不当时容易引发性能问题。核心原因包括:关联字段无索引、数据类型不一致、字符集不匹配、小表驱动大表原则被破坏等。文章通过三个层次详细解析了联查机制:直观理解联查过程、底层执行原理(Index Nested-Loop Join算法)以及实际场景中的性能陷阱。针对初级开发者,文章给出了实用建议:善用EXPLAIN分析、确保关联字段有索引、字段类型对齐、采用单表查
2025-12-01 10:12:21
748
原创 四大函数式接口
Java函数式编程核心概念总结 函数式编程中有4种基础接口类型: Supplier(供应商)- 无参有返回值,用于延迟生成值 Consumer(消费者)- 有参无返回值,用于消费数据 Function(转换器)- 有参有返回值,用于数据转换 Predicate(断言)- 有参返回布尔值,用于条件判断 使用规则: 仅当接口是函数式接口(仅含一个抽象方法)时才能使用Lambda 遵循PECS原则处理泛型边界:Producer用extends,Consumer用super 开发实践: 定义函数式接口需使用@Fun
2025-11-27 08:36:05
719
原创 java线程池,从八股到开发
本文介绍了线程池的使用方法,重点分析了JDK内置的四种线程池(FixedThreadPool、CachedThreadPool、SingleThreadExecutor、ScheduledThreadPool)的特点、适用场景及潜在风险。同时针对生产环境,推荐手动创建ThreadPoolExecutor,并提供了两种典型配置方案:低延迟高并发场景采用SynchronousQueue+大线程数配置,削峰填谷场景采用ArrayBlockingQueue+合理线程数配置。文章强调生产环境应避免直接使用Execut
2025-11-26 15:20:36
610
原创 @Transactional 失效场景
Spring事务失效是常见问题,主要分为三类:1)自身调用问题,如类内方法调用绕过代理;2)配置错误,包括非public方法、final方法、异常类型不匹配或被捕获;3)环境问题,如MyISAM引擎、多线程调用或传播机制错误。排查顺序建议:检查日志、注解配置、调用方式、方法权限和数据库引擎。关键解决方案包括使用代理对象调用、指定rollbackFor、避免捕获异常等。
2025-11-26 09:06:22
588
原创 SpringBoot事务传播类型、区别及应用场景 Transactions propaganda
在 Spring Boot 事务管理中,propagation(事务传播行为)用于定义当一个事务方法被另一个事务方法调用时,当前事务如何与调用者的事务进行交互(例如是否复用已有事务、是否新建事务等)。
2025-10-14 12:48:14
588
原创 JetBrain-idea免费教育许可证【限制高校名单】
如果你的学校被屏蔽了,可以先去用教育邮箱申请一个GitHub学生包,然后在github.com/settings/emails里边删除你的教育邮箱,之后再用获得的GitHub学生包资质去认证Jetbrains,即可顺利完成认证。
2025-10-10 16:36:52
124
原创 深入解析 Redis ZSET:跳表与哈希表的完美结合
ZSET 的底层数据结构 结合了 跳表 和 哈希表:跳表 用于实现 按分数排序 和 范围查询,提供高效的查询和插入操作。哈希表 用于 存储元素与分数之间的映射关系,支持快速的分数查找和更新操作。按分数排序查询 和 修改分数 的操作,通过跳表的层级结构和哈希表的快速访问,使得 Redis 能够在大规模数据下保持高效的性能。跳表和哈希表的结合提供了高效的排序、查找和更新功能,特别适合处理需要排序的有序数据。
2025-07-17 14:21:44
1094
原创 如何保证远程服务器跑代码不中断?
摘要:使用screen保障远程训练稳定性(约140字) 针对SSH连接中断导致训练任务终止的问题,推荐使用Linux终端复用工具screen。它通过创建独立会话实现进程与连接解耦:即便网络断开,会话仍持续运行;重连后可恢复操作。关键功能包括:创建命名会话(screen -S name)、查看会话列表(screen -ls)、连接/分离会话(-r/-d参数)以及安全退出。特别需掌握组合键Ctrl+A+D快速分离会话,确保任务后台持续运行,有效避免计算资源浪费和实验进度中断。
2025-06-27 17:42:44
617
原创 点云法向量及栅格下采样(附可能出现的问题)
主成分分析(PCA)是一种常用于数据降维的技术,通过计算数据的主成分(即数据中方差最大的方向),可以找到数据的主要方向。它在点云处理中的应用主要是用于确定点云的主要方向和提取点云的几何特征。PCA 通过将数据中心化(即减去均值),然后计算协方差矩阵,再进行奇异值分解(SVD),从中提取出特征向量和特征值,特征向量表示数据的主方向,特征值表示各个主方向的方差大小。
2025-06-23 14:19:35
1024
原创 关于若依怎么用
建立数据库表打开若依项目前端:npm install + npm run dev后端:改改端口最多 基本不用变数据库:建立若依数据库 (给的sql在若依数据库导入你的表前端用代码生成先导入再编辑要改的地方最后生成代码5.生成的代码按文件夹添加进去就完事了controller加到admin里其他都加到system就完事了。
2024-01-17 22:26:14
456
原创 C语言复试题
(2) strcmp(a, b),比较两个字符串的大小,a < b 返回-1,a == b 返回0,a > b返回1。注意:不能用printf直接输出string,需要写成:printf(“%s”, s.c_str());可以使用字符串来初始化字符数组,每个字符串结尾会暗含一个\0字符,因此字符数组的长度多1。例如,6就是一个完全数,因为它的除了本身以外的其他约数的和为 1+2+3=6、。(3) strcpy(a, b),将字符串b复制给从a开始的字符数组。(1) strlen(str),求字符串的长度。
2023-03-24 12:10:18
422
1
原创 Java 斗地主案例(入门级)
package DouDiZhu;import java.util.ArrayList;import java.util.Collections;/* 流程: 1.准备牌 2.洗牌 3.发牌 4.看牌 5.叫地主 */public class Test { public static void main(String[] args) { /* 1.准备牌
2021-03-14 20:10:34
205
原创 java-继承和多态中成员变量和成员方法的访问特点
继承中成员变量的访问特点在父子类的继承关系当中,如果成员变量重名,则创建子类对象,访问有两种方式:直接通过子类对象访问成员变量:等号左边是谁,就优先用谁,没有则向上找间接通过成员方法访问成员变量:该方法属于谁,就优先用谁,没有则向上找继承中成员方法的访问特点在父子类的继承关系当中,创建子类对象,访问成员方法的规则:创建的对象是谁,就优先用谁,如果没有则向上找。多态中成员变量的访问特点多态(父亲引用指向子类对象)访问成员变量的两种方式:直接通过对象名称访问成员变量,看
2021-03-10 18:39:19
431
原创 java如何实现String和int的相互转换
String转换为int//String类型的数字 String a ="100"; //Integer的数字 Integer num = 99;//Integer.parseInt()就是把String类型转化为int类型 int parseInt = Integer.parseInt(a); //Integer.valueOf() 是把String类型转化为Integer类型 Integer valueOf = Integer.
2021-03-07 18:23:53
147
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅