自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 postgreSQL的sql语句

postgreSQL的sql语句

2025-07-14 18:03:54 980

原创 Windows安装postgreSQL(保姆级教程)

Windows安装postgreSQL(保姆级教程)

2025-07-14 14:29:03 1274

原创 springboot集成七牛云,图片转为预览URL链接,免费!!!

本文介绍了如何将七牛云对象存储服务集成到SpringBoot项目中实现图片上传功能。首先需要注册七牛云账号并完成实名认证,获取AK和SK密钥,创建存储空间并记录测试域名。然后在SpringBoot项目中添加七牛云Java SDK依赖,配置相关参数,编写工具类实现文件上传功能,最后通过Controller提供上传接口。该方法相比PostImage等免费图床服务,提供了可编程的API集成方式,新用户可免费使用七牛云一个月。文中详细说明了从账号注册到代码实现的完整流程,并提供了关键代码示例。

2025-04-03 09:28:32 513

原创 【Hbuilder】Windows下安装Hbuilder(全面)

【Hbuilder】Windows下安装Hbuilder(全面)

2025-04-01 14:37:38 710

原创 计算机专业毕业设计【大学校园车辆管理系统】分享

计算机专业毕业设计【大学校园车辆管理系统】分享

2025-01-02 11:35:39 270

原创 java自定义注解对枚举类型参数的校验

java自定义注解对枚举类型参数的校验

2024-12-30 17:32:24 814

原创 java注解了解

java注解了解,使用

2024-12-30 16:01:13 798

原创 springboot3版本结合knife4j生成接口文档

knife4j了解和快速上手。官网为:介绍 | Knife4j (xiaominfo.com)初步了解的码友可以初步了解一下官网的如下几个模块:其中在快速开始模块中,不同的springboot版本都有一个使用的案例demo如下图位置,大家可以点击进去,把对应的代码下载到本地,查看是如何使用和引用knife4j的:总结下来就是:knife4j是基于swagger优化的、比swagger更好用的接口文档生成器。

2024-12-26 17:52:35 687

原创 压力测试Jmeter简介

压力测试Jmeter简介

2024-12-17 11:19:42 997

原创 mySQL数据库,mybatis实现大批量插入和更新的SQL语句(亲测有效)

mySQL数据库,mybatis实现大批量插入和更新(3种方法)的SQL语句

2024-11-25 17:03:19 764

原创 提高后端接口性能的方法

提高后端接口性能的方法

2024-10-29 18:14:34 1022 2

原创 宏处理将多个excel文件的指定sheet页合并到一个excel文件中

宏处理将多个excel文件的指定sheet页合并到一个excel文件中

2024-10-29 15:53:58 2030

原创 IDEA自动清理类中未使用的import包

IDEA自动清理类中未使用的import包

2024-09-25 18:11:55 7369 2

原创 技术分享:Java 17 新特性介绍

Java 17 新特性介绍

2024-09-25 17:43:01 4005

原创 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

原创 MYSQL表设计时间列采用dateTime还是timestamp?

MYSQL表设计时间列采用dateTime还是timestamp?

2024-09-06 11:11:12 547

原创 Springboot整合【Kafka】

Springboot整合【Kafka】

2024-09-05 17:30:54 795

原创 【Zookeeper】Windows下安装Zookeeper(全面)

【Zookeeper】Windows下安装Zookeeper(全面)

2024-08-29 15:34:19 9903 2

原创 【Kafka】Windows下安装Kafka(全面)

【Kafka】Windows下安装Kafka(全面)

2024-08-29 15:05:52 12569 11

原创 【Scala】Windows下安装Scala(全面)

【Scala】Windows下安装Scala(全面)

2024-08-29 11:31:23 3431 3

原创 @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关注的人

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