会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
ciel_717
博客园
首页
新随笔
联系
订阅
管理
[置顶]
Java同步器简述
摘要: 一、概述 在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题: 线程之间内存共享,需要通过加锁进行控制,但是加锁会导致性能下降,同时复杂的加锁机制也会增加编程编码
阅读全文
posted @ 2022-12-16 17:39 夏尔_717
阅读(506)
评论(0)
推荐(0)
[置顶]
Java数据结构和算法
摘要: 一、数据结构 数据结构是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 1.1 数据结构分类 数据结构可按照逻辑结构和存储结构划分 1.1.1 逻辑结构 系统的
阅读全文
posted @ 2022-09-09 18:23 夏尔_717
阅读(2497)
评论(0)
推荐(1)
[置顶]
Java原子类简述
摘要: 一、概述 java的java.util.concurrent包除了提供底层锁、并发集合外,还提供了一组原子操作的封装类,它们位于java.util.concurrent.atomic包。 Atomic类是通过无锁(lock-free)的方式实现的线程安全(thread-safe)访问。 二、原子类底
阅读全文
posted @ 2022-06-20 22:55 夏尔_717
阅读(329)
评论(0)
推荐(0)
[置顶]
Java容器简述
摘要: 一、概述 Java集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射。Collection接口又有3种子类型,List、Set和Queue,再下面是一些抽象类,最后是具体实现类,常用的有ArrayList、LinkedList
阅读全文
posted @ 2022-05-08 18:53 夏尔_717
阅读(150)
评论(0)
推荐(0)
2025年12月17日
SpringBoot使用设计模式一装饰器模式
摘要: 一、前言 在实际开发中,经常会遇到这样的场景:某个核心业务功能已经实现,但随着需求迭代,需要为该功能添加额外的附加功能。例如,一个文件处理系统,核心功能是“文件上传”,后续可能需要新增“文件格式校验”“文件大小限制”“上传进度监控”“上传日志记录”等功能;再比如,一个接口调用工具,核心功能是“发送H
阅读全文
posted @ 2025-12-17 22:25 夏尔_717
阅读(2)
评论(0)
推荐(0)
SpringBoot使用设计模式一观察者模式
摘要: 一、前言 在实际开发中,经常会遇到这样的场景:当某个核心事件发生时,需要触发一系列关联操作。例如,用户完成订单支付后,系统需要自动执行发送支付成功短信、更新订单状态、扣减库存、生成物流单等操作。 如果按照传统的写法,可能会出现如下耦合度极高的代码: public void paySuccess(St
阅读全文
posted @ 2025-12-17 22:25 夏尔_717
阅读(8)
评论(0)
推荐(0)
SpringBoot使用设计模式一适配器模式
摘要: 一、前言 在SpringBoot实际开发中,经常会遇到接口不兼容的场景:比如系统需要对接多个第三方服务(支付、短信、物流),每个服务提供的SDK接口格式、参数结构、返回值类型都各不相同,但核心业务逻辑(发起请求、接收响应、结果处理)却高度相似;又或者旧系统的旧接口需要被新系统复用,但接口定义与新系统
阅读全文
posted @ 2025-12-17 22:24 夏尔_717
阅读(8)
评论(0)
推荐(0)
SpringBoot使用设计模式一JDK动态代理
摘要: 一、前言 在日常开发中,我们经常会遇到这样的场景:需要在不修改原有业务代码的前提下,为核心业务逻辑添加额外功能,比如日志记录、权限校验、事务管理等。 如果直接在业务方法中嵌入这些非核心逻辑,会导致代码耦合度高、可读性差,且重复代码冗余。例如: public class UserServiceImpl
阅读全文
posted @ 2025-12-17 22:24 夏尔_717
阅读(3)
评论(0)
推荐(0)
2025年12月8日
MyBatis参数加解密
摘要: 一、概述 在MyBatis中通过拦截器实现SQL参数加密/结果集解密是数据安全的常见场景,核心是拦截参数处理环节(加密入参)和结果集处理环节(解密出参)。 适配Spring Boot3 + MyBatis环境。 核心思路 拦截点 作用 拦截接口 拦截方法 参数加密 执行SQL前加密敏感参数 Para
阅读全文
posted @ 2025-12-08 21:57 夏尔_717
阅读(11)
评论(0)
推荐(0)
Mybatis拦截器原理解析
摘要: 一、概述 在Mybatis开发体系中,“过滤器”是开发者对Mybatis拦截器(Plugin)的通俗称呼,它是Mybatis提供的核心扩展机制——无需修改框架源码,就能对SQL执行全流程进行增强,比如分页插件、通用字段自动填充、数据加解密等功能,底层均依赖这一机制。本文将从底层技术原理、核心源码解析
阅读全文
posted @ 2025-12-08 21:18 夏尔_717
阅读(15)
评论(0)
推荐(0)
2025年12月7日
MyBatis自定义拦截器
摘要: 一、概述 在实际开发中,我们常常需要在不侵入业务代码的前提下,对SQL执行过程进行增强处理,比如SQL耗时统计、参数加密、结果集脱敏、数据权限过滤等场景。MyBatis提供的自定义拦截器(Plugin)机制,正是为这类需求而生。 MyBatis拦截器基于责任链模式和动态代理实现,允许开发者在SQL执
阅读全文
posted @ 2025-12-07 22:19 夏尔_717
阅读(36)
评论(0)
推荐(0)
2025年12月4日
Spring配置接口WebMvcConfigurer
摘要: 一、概述 WebMvcConfigurer是SpringMVC提供的一个配置回调接口,它定义了一系列用于自定义SpringMVC行为的方法,只需创建一个配置类实现该接口,并按需重写方法,即可轻松实现URL映射、拦截器注册、跨域配置等功能,无需编写繁琐的XML配置。 关键特性: 无侵入性:仅需实现接口
阅读全文
posted @ 2025-12-04 14:45 夏尔_717
阅读(11)
评论(0)
推荐(0)
2025年12月3日
RocketMQ消息积压
摘要: 一、概述 在分布式系统架构中,RocketMQ作为主流消息中间件,承担着业务解耦、流量削峰、异步通信的核心职责。但消息积压是其运行过程中高频出现的问题,一旦发生,轻则导致业务响应延迟(如订单状态同步慢、通知推送超时),重则引发Broker磁盘溢出、核心服务中断,直接影响用户体验与系统稳定性。 二、线
阅读全文
posted @ 2025-12-03 22:27 夏尔_717
阅读(19)
评论(0)
推荐(0)
json压缩与解压
摘要: 一、概述 在现代应用开发中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式被广泛使用。然而,在网络传输或者数据存储的过程中,如何有效地压缩和解压JSON数据,是很多开发者需要解决的问题。 部分数据如下所示: { "33828": { "code": "3
阅读全文
posted @ 2025-12-03 17:38 夏尔_717
阅读(57)
评论(0)
推荐(0)
2025年12月1日
SpringCloud Feign首次调用慢解决方案
摘要: 一、概述 Feign作为Spring Cloud中声明式HTTP客户端,首次调用慢是高频问题,核心成因包括懒加载初始化、连接池未预热、DNS解析耗时、Hystrix/Sentinel初始化等,先明确首次调用慢的核心环节,避免盲目优化: 慢调用环节 具体原因 耗时范围 Feign客户端初始化 Feig
阅读全文
posted @ 2025-12-01 15:39 夏尔_717
阅读(40)
评论(0)
推荐(0)
2025年11月29日
Redis保证热点数据
摘要: 一、内存淘汰机制 内存淘汰机制是保障热数据的基础,核心通过两个关键配置实现:一是用maxmemory限制内存上限,二是用maxmemory-policy定义淘汰规则,确保优先淘汰冷数据。 1.1 开启内存限制 需先设置Redis最大可用内存,避免冷数据无限制堆积导致系统资源耗尽。 # redis.c
阅读全文
posted @ 2025-11-29 17:09 夏尔_717
阅读(8)
评论(0)
推荐(0)
2025年11月27日
MySQL性能分析(六)之PS监控SQL性能
摘要: 一、Profiling局限性 在MySQL性能诊断领域,Profiling工具曾因简单易用成为开发者排查SQL耗时的常用选择,但随着MySQL版本迭代(5.7+起官方明确标记为弃用),其功能局限和性能损耗问题逐渐凸显。而Performance Schema(简称PS)作为MySQL原生的高性能监控框
阅读全文
posted @ 2025-11-27 22:06 夏尔_717
阅读(21)
评论(0)
推荐(0)
2025年11月20日
JVM调优案例
摘要: 一、核心指标 调优之前首先我们要知道怎样才算是“优”,不能笼统的说我的程序性能很好,所以就需要有一个具体的指标来衡量性能情况,而在JVM里面衡量性能两个指标分别“吞吐量”和“停顿时间”。 吞吐量:程序运行过程中执行两种任务,分别是执行业务代码和进行垃圾回收,吞吐量大意就是说程序运行业务代码的时间越多
阅读全文
posted @ 2025-11-20 12:46 夏尔_717
阅读(25)
评论(0)
推荐(0)
2025年11月19日
MySQL分组算法
摘要: 一、概述 group by的核心作用是分类统计:通过指定分组列将原始数据划分为多个逻辑组,再结合sum、count、min/max等聚合函数,计算每组的统计结果(如按用户分组统计订单总额、按日期分组统计访问量)。 其执行效率的关键瓶颈在于:无索引支持时,MySQL需经历「扫描全表→创建临时表存储中间
阅读全文
posted @ 2025-11-19 14:29 夏尔_717
阅读(23)
评论(0)
推荐(0)
2025年11月18日
JVM JIT即时编译
摘要: 一、概述 在Java开发中,我们常听说“Java是解释执行的”,但实际运行时却能感受到接近原生代码的性能。这背后的核心功臣,正是JVM中的JIT(Just-In-Time)即时编译器。它打破了“解释执行”的性能瓶颈,通过动态编译将热点代码转化为原生机器码,让Java实现了“一次编写,到处运行”与高性
阅读全文
posted @ 2025-11-18 23:26 夏尔_717
阅读(27)
评论(0)
推荐(0)
Nginx负载均衡
摘要: 一、概述 1.1 基本定义 负载均衡通过引入调度机制,将单个服务器的负载分散到多台服务器节点,确保每台后端服务器的性能充分发挥,避免单点过载,最终实现集群整体性能最优。对于Web应用而言,它能有效解决高并发场景下的服务瓶颈,同时提升系统的容灾能力。 1.2 负载均衡核心优势 高并发支持:可轻松处理数
阅读全文
posted @ 2025-11-18 23:25 夏尔_717
阅读(21)
评论(0)
推荐(0)
Nginx日志配置
摘要: 一、概述 Nginx日志是服务器运维与问题排查的核心支撑,能够精准记录客户端请求详情、服务响应状态、处理耗时等关键信息,为故障定位、性能优化、安全审计和流量分析提供可靠数据依据。Nginx具备灵活的日志记录机制,支持多级别配置独立日志、自定义日志格式及缓存优化等功能。 二、日志级别 Nginx日志级
阅读全文
posted @ 2025-11-18 23:22 夏尔_717
阅读(128)
评论(0)
推荐(0)
2025年11月15日
MySQL MVCC实现原理
摘要: 一、概述 1.1 MVCC的定义与价值 MVCC(Multi-Version Concurrency Control)是一种非锁定式并发控制技术,其核心目标是解决读写操作的相互阻塞问题。传统锁机制中,读操作加共享锁、写操作加排他锁,导致读写互斥;而MVCC通过维护数据的多个历史版本,让快照读(非锁定
阅读全文
posted @ 2025-11-15 18:37 夏尔_717
阅读(8)
评论(0)
推荐(0)
2025年11月5日
Http协议解析
摘要: 一、概述 超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 1.1 发展历史 起源:HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。 标
阅读全文
posted @ 2025-11-05 20:24 夏尔_717
阅读(25)
评论(0)
推荐(0)
下一页
公告