- 博客(75)
- 收藏
- 关注
原创 Redis缓存三大问题详解:击穿、穿透与雪崩的解决方案
本文探讨了Redis缓存中的三个典型问题及解决方案:1. 缓存击穿(热点key过期导致数据库压力骤增)- 解决方案:设置热点永不过期、互斥锁机制、接口限流与熔断;2. 缓存穿透(查询不存在数据)- 解决方案:接口校验、缓存空值、布隆过滤器;3. 缓存雪崩(大量key同时过期)- 解决方案:随机化过期时间、构建高可靠集群、服务降级与限流。文章详细介绍了每种问题的成因和具体应对措施,包括代码实现示例,特别对布隆过滤器的原理和应用场景进行了重点说明。这些解决方案能有效提升系统稳定性和性能。
2025-12-14 19:20:15
632
原创 java开发--开发工具全面介绍--新手养成记
本文为Java开发者提供实用指南,涵盖Spring工具类、IDEA插件、代码优化等核心内容。重点介绍了Spring自带的Assert、StringUtils等11个常用工具类;推荐了Lombok、RainbowBrackets等8款提升效率的IDEA插件;分享了消除if-else的4种优化方法;讲解了JDK8的Lambda、Stream等新特性;最后演示了Git在IDEA中的基础操作。通过掌握这些技巧,开发者可快速提升Java开发能力,从小白成长为高手。文章内容实用,案例丰富,适合Java初学者系统学习。
2025-12-13 12:45:40
786
原创 java开发--alibaba代码规范插件--新手必备
阿里巴巴推出Alibaba Java Coding Guidelines插件,帮助开发者规范Java代码编写。该插件提供实时检测功能,将不符合规范的代码按严重程度分为Blocker、Critical、Major三个等级。安装方式支持在线和离线两种,详细介绍了安装步骤和验证方法。使用时可通过右键菜单对目录、文件或代码片段进行扫描,扫描结果会定位到具体问题行。插件要求Blocker和Critical级别问题必须立即修改,Major级别可稍后处理。文章最后提供了阿里云开发者社区的官方规范链接。
2025-12-13 11:00:40
1242
原创 java线程池知识点--第三季--简单易懂系列----新手必备
本文深入解析Java线程池的核心技术与应用场景。线程池通过复用线程、控制并发数等机制,有效解决手动创建线程的资源消耗、管理混乱等问题。文章详细介绍了三种创建方式(Executors工具类、ThreadPoolExecutor手动构造、定时线程池),重点推荐ThreadPoolExecutor实现,并解析其核心参数与工作原理。同时阐述了四种拒绝策略的适用场景,强调合理配置线程池对提升程序性能的重要性,为Java开发者提供了线程池的实用指南。
2025-12-12 17:03:57
792
原创 java线程状态知识点--第二季--简单易懂系列----新手必备
本文介绍了Java线程的六种生命周期状态及其转换关系。线程状态包括新建(NEW)、就绪/运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)和终止(TERMINATED)。重点分析了各状态的特征和触发条件,如新建状态需调用start()方法启动,阻塞状态由锁竞争引发,等待状态需要显式唤醒等。通过代码示例展示了状态转换的具体场景,并指出RUNNABLE状态在Java中合并了操作系统级的就绪和运行两种状态。掌握这些状态转换机制是Java并发编程的基础。
2025-12-12 16:10:13
822
原创 java线程知识点--第一季--简单易懂系列----新手必备
摘要:线程是CPU调度的基本单位,存在于进程中并共享进程资源。多线程通过交替执行提升程序性能,但需注意数据一致性和死锁问题。线程与进程的区别在于内存共享方式,线程通信更高效。Java提供三种创建线程方式:继承Thread类(简单但不灵活)、实现Runnable接口(可复用但无返回值)、实现Callable接口(可返回结果但实现复杂)。每种方式各具特点,需根据场景选择。线程管理是提升程序效率的重要手段。
2025-12-11 17:23:53
971
原创 java后端好习惯---新手养成记
本文总结了15个提升代码质量的开发好习惯:1.全面注释(类/方法/复杂逻辑);2.参数≥3时封装对象;3.封装通用模板方法避免重复代码;4.封装复杂判断逻辑;5.善用工具类;6.规范日志打印(入口/出口/异常);7.统一异常处理;8.合理项目目录结构;9.浮点数用BigDecimal比较;10.包装类用equals比较;11.日期格式化注意事项;12.集合操作规范(判空/toMap/subList等);13.预防运行时错误(越界/除零/空指针);14.finally释放资源;15.控制方法复杂度(≤80行)
2025-12-11 11:50:13
1591
原创 Java 日志打印最佳实践:15 条建议--新手养成记
【日志打印最佳实践摘要】 日志是系统问题排查的重要依据。建议:1. 合理选择日志级别(error/warn/info/debug/trace);2. 关键位置打印入参出参;3. 条件分支首行记录日志;4. 低级别日志需开关判断;5. 使用SLF4J门面框架;6. 采用{}占位符替代字符串拼接;7. 异步输出提升性能;8. 禁止直接e.printStackTrace();9. 异常需完整记录堆栈;10. 线上环境关闭debug;11. 规范日志格式包含时间戳等信息;12. 避免重复打印异常
2025-12-10 17:21:14
1125
原创 从零到一:用 SpringBoot 打造 RESTful API 实战指南
本文介绍了RESTful API的设计规范与实现方法。RESTful API采用面向资源的设计风格,通过URL定位资源,使用HTTP动词(GET/POST/PUT/DELETE)描述操作。文章对比了传统API与RESTful风格的差异,包括URL命名、HTTP方法使用和响应格式等方面。通过图书管理案例,详细展示了SpringBoot实现RESTful API的具体方法,包括统一响应格式(ApiResponse)、资源操作接口设计以及请求示例。RESTful API具有无状态、统一接口和资源导向等特点。
2025-12-10 11:28:53
787
原创 【图文详解】JWT从入门到精通,与Cookie、Session、Token的全面对比分析
本文深入解析JWT(JSON Web Token)身份认证方案。JWT作为一种开放标准,具有无状态、自包含、可扩展三大特点,适用于前后端分离架构。文章详细介绍了JWT的结构组成(Header、Payload、Signature)和工作流程,并与传统Cookie/Session方案进行对比分析。同时提供了SpringBoot实践案例,包括JWT工具类创建、用户实体定义和控制器实现。
2025-12-09 18:07:42
445
原创 Spring Bean生命周期详解
摘要:Spring Bean的生命周期包含五个关键阶段:实例化(通过反射创建Bean)、属性赋值(依赖注入)、初始化(执行Aware接口回调、BeanPostProcessor处理和自定义初始化逻辑)、使用(Bean处于正常工作状态)以及销毁(执行清理资源和自定义销毁方法)。
2025-12-08 17:59:05
694
原创 Spring重试机制: 注解@Retryable和@Recover
SpringRetry是Spring生态中的轻量级重试框架,通过声明式注解简化重试逻辑实现。核心注解包括@Retryable(指定重试异常类型、次数和间隔策略)和@Recover(定义重试失败后的降级处理)。实现步骤包括添加依赖、启用注解、配置重试方法及恢复方法。该框架通过AOP代理实现,适用于处理网络波动等临时性故障,能有效提升系统健壮性。使用时需注意合理设置重试次数、选择退避策略并区分异常类型。
2025-12-08 17:13:36
738
原创 java注解+AOP切面:实现sql片段动态插入
本文介绍了一种通过注解和切面实现SQL片段动态插入的方案,用于简化数据权限控制。核心步骤包括:1)创建@InjectWhereSqlCondition注解定义表名、字段名等参数;2)编写切面类捕获注解值并存入线程上下文;3)创建拦截器修改原始SQL,插入条件片段;4)配置MyBatisPlus集成拦截器。该方案通过注解即可实现SQL条件动态注入,避免硬编码,支持供应商账号自动过滤,提高了代码复用性和可维护性。实现过程涉及AOP、线程上下文、SQL拦截等关键技术点。
2025-10-13 17:39:07
386
原创 springboot集成七牛云,图片转为预览URL链接,免费!!!
本文介绍了如何将七牛云对象存储服务集成到SpringBoot项目中实现图片上传功能。首先需要注册七牛云账号并完成实名认证,获取AK和SK密钥,创建存储空间并记录测试域名。然后在SpringBoot项目中添加七牛云Java SDK依赖,配置相关参数,编写工具类实现文件上传功能,最后通过Controller提供上传接口。该方法相比PostImage等免费图床服务,提供了可编程的API集成方式,新用户可免费使用七牛云一个月。文中详细说明了从账号注册到代码实现的完整流程,并提供了关键代码示例。
2025-04-03 09:28:32
513
原创 springboot3版本结合knife4j生成接口文档
knife4j了解和快速上手。官网为:介绍 | Knife4j (xiaominfo.com)初步了解的码友可以初步了解一下官网的如下几个模块:其中在快速开始模块中,不同的springboot版本都有一个使用的案例demo如下图位置,大家可以点击进去,把对应的代码下载到本地,查看是如何使用和引用knife4j的:总结下来就是:knife4j是基于swagger优化的、比swagger更好用的接口文档生成器。
2024-12-26 17:52:35
687
原创 mySQL数据库,mybatis实现大批量插入和更新的SQL语句(亲测有效)
mySQL数据库,mybatis实现大批量插入和更新(3种方法)的SQL语句
2024-11-25 17:03:19
764
原创 springboot结合p6spy进行SQL监控
P6Spy 是一款开源的 Java 框架,是一个强大的数据库监控工具。可以帮助开发者监控并分析应用程序与数据库之间的交互行为。springboot结合p6spy亲测有效
2024-09-20 15:04:45
1465
3
原创 最全面IO流介绍
标准字符集:使用1个字节存储一个字符,首尾是0,总可以表示128个字符。是美国信息交换标准代码,包含英文、符号等等。汉字编码字符集,包含2万多个汉字等字符,GBK中一个中文字符编码成2个字节的形式存储,GBK兼容了ACSII字符集。GBK规定:汉字的第一个字节的第一位必须是1Unicode字符集:是国际组织规定的,可以容纳世界所有文字、符号的字符集。叫万国码。UTF-32: 4个字节表示一个字符,固定长度,可能只需要1个字节的英文字符现在要用4个字节来存储,太奢侈。
2024-09-12 18:11:56
1039
原创 @Param注解的踩坑,报错:There is no getter for property named ‘dto‘ in ‘class
@Param注解的踩坑,报错:There is no getter for property named 'dto' in 'class
2024-08-22 18:27:21
610
1
原创 MATLAB实验五:MATLAB数据分析
2. P370 实验 10 第 5 题 (doc ode45) (请给出解的图形)3)使用 gtext('你的学号,你的姓名')在图形的适当位置显示你的个人信息。点,并在 1~8 范围内,使用时间间隔为 0.2 的数据绘制拟合曲线。(说明:实验报告中需给出实现代码,输出图形和数据输出结果)(gtext。2)给出电压值为 6V 时的大致时间,并在第 1)题所绘制的图上进行。gtext('1821000263,计科 194,刘艳');title("电压为 6 时的时间为:");title('张三,学号');
2024-07-22 16:16:39
1537
原创 matlab实验:实验六MATLAB 数值计算与符号运算
3. P370 实验 10 的第 3 题. (doc fminbnd 或 doc fminsearch),注。2. P369 实验 10 的第 2 题. (doc fzero 或 doc fsolve)。第 2 种 , 用 符 号 运 算 的 solve 函 数 解 方 程。第 2 种 , 用 符 号 运 算 的 solve 函 数 解 方 程。1. 用不同的方法求解下面方程:(方程原式参考 P369 实验 10,第 1。1. 用不同的方法求解下面方程:(方程原式参考 P369 实验 10,第 1。
2024-07-22 16:02:53
752
原创 sql优化策略
利用数据库缓存机制,如查询缓存(Query Cache),虽然现代数据库系统可能已经弃用了全局查询缓存,但可以利用缓存策略优化读取。使用覆盖索引(Covering Indexes),即索引中包含了查询所需的所有列,这样数据库就不需要回表查询数据。使用数据库的执行计划工具(如EXPLAIN)来分析查询的执行过程,找出瓶颈。避免在WHERE子句中使用复杂的函数调用,因为这可能阻止数据库使用索引。对于频繁查询的列,考虑使用更紧凑的数据类型来减少磁盘I/O和内存使用。使用适当的数据类型,避免不必要的类型转换。
2024-07-17 17:39:08
579
1
原创 ArrayList.subList的踩坑
表示从下标为1的数据开始截取list中的除了下标为0的其他所有数据。表面上看好像没什么问题,若从数据库里面查出来的companyList 的长度为2,那么下标范围为0和1,使用该方法最终获取的companyList为空,和我们想要的预期值不合。若list中只有两个元素,跳过第一个元素获取剩下的元素,若使用ArrayList.subList(1,1)是不对的,用数学表达式表达就是[1,1)不会获取到第二个元素,截取后获取的数组为空。需求描述:跳过list中的第一个元素,获取list中的其他元素。
2024-07-17 11:28:41
499
原创 windows安装ElasticSearch以及踩坑
elasticsearch地址:IK分析器地址:kibana可视化工具下载地址:注意:下载3个安装包的版本相同,不然可能会报错误。
2024-05-07 18:08:59
1582
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅