- 博客(37)
- 收藏
- 关注

原创 JVM 垃圾回收机制深度解析(含图解)
JVM 垃圾回收机制的系统化梳理,涵盖对象判定、回收算法、垃圾收集器及选型策略。JVM 垃圾回收机制的进一步细化,结合图解直观展示核心概念、算法流程及收集器工作原理
2025-05-21 02:02:14
1867
原创 log4j2配置异步模式、结构化日志以及接入skywalking监控系统
本文主要探讨Java项目中的日志方案选型,重点对比SLF4J 1.x/2.x和Logback/Log4j2的特性差异。首先通过决策树展示日志系统选择路径,然后详细比较不同版本SLF4J的性能、模块化支持和功能特性,并特别分析了Log4j2在Spring Boot中的配置问题(如与Nacos的兼容性问题)。最后提供Logback与Log4j2的综合对比表格,从性能、配置方式等方面帮助开发者做出选择。
2025-06-16 11:46:52
504
原创 Apache JMeter 全面使用指南
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。JMeter 最初被设计用于 Web 应用测试,但后来扩展到了其他测试领域,可用于测试静态和动态资源,如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库和 FTP 服务器等等。JMeter 可对服务器、网络或对象模拟巨大的负载,在不同压力类别下测试它们的强度和分析整体性能。另外,JMeter 能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证程序是否返回了期望结果。
2025-05-26 18:46:54
960
原创 SkyWalking全链路追踪工具
Apache SkyWalking 是一款专注于 分布式系统监控、追踪与诊断 的国产开源应用性能管理(APM)工具,由吴晟于 2015 年创建并开源,2017 年进入 Apache 孵化器,2019 年成为 Apache 顶级项目
2025-05-26 17:37:24
1222
原创 Arthas(阿尔萨斯)
Arthas(阿尔萨斯)是阿里巴巴开源的一款 Java 在线诊断工具,基于 Java Agent 和字节码增强技术实现。它无需重启 JVM,即可动态追踪代码执行、实时查看 JVM 状态、修改代码逻辑,是生产环境问题排查的“瑞士军刀”。
2025-05-23 20:18:56
973
原创 JVM监控工具
JVM监控工具分为自带工具和第三方工具,各自具有不同的优缺点和适用场景。JVM自带工具包括命令行工具(如jps、jstat、jstack、jmap、jinfo、jcmd)和图形化工具(如JConsole、VisualVM、Java Mission Control),这些工具轻量级且无需额外安装,但功能相对基础。第三方工具包括开源工具(如Arthas、Prometheus+Grafana+JMXExporter)和商业工具(如JProfiler、YourKit)。
2025-05-23 16:48:54
1092
原创 内网穿透工具
内网穿透(NAT穿透)是一种技术,也被称为内网映射或 nat 穿透,允许外部网络通过公网服务器或中继节点访问局域网(内网)中的设备或服务。简单来说,就是让外网能访问你的内网,把自己的内网(主机)当成服务器,让外网能访问。
2025-05-22 23:19:20
844
原创 跨平台 Web 调试代理工具 Whistle
Whistle 是一款基于 Node.js 开发的 跨平台 Web 调试代理工具,支持 Windows、macOS 和 Linux。它通过拦截和修改 HTTP/HTTPS 请求,帮助开发者快速调试网络问题、Mock 数据、分析性能瓶颈,是前端开发和网络抓包的利器。
2025-05-22 05:00:02
827
原创 数据库故障排查指南
数据库故障排查指南适用场景:生产环境数据库性能下降、服务不可用、数据异常、连接失败等故障场景。目标读者:DBA、运维工程师、架构师核心原则:快速恢复业务 → 定位根因 → 修复问题 → 预防措施
2025-05-21 02:52:13
983
原创 JVM(Java 虚拟机)深度解析
JVM(Java虚拟机)是Java生态系统的核心,负责执行Java字节码,实现“一次编写,到处运行”的理念。JVM的架构包括类加载系统、运行时数据区域和执行引擎。类加载系统负责加载、链接和初始化类,遵循双亲委派模型确保安全性。运行时数据区域分为线程共享区域(方法区、堆)和线程私有区域(程序计数器、虚拟机栈、本地方法栈)。执行引擎包括解释器、即时编译器和垃圾回收器,负责字节码的执行和内存管理。JVM的内存管理主要涉及堆内存的划分(新生代、老年代、元空间)和垃圾回收机制(如标记-清除、标记-整理、复制算法等)。
2025-05-19 17:23:05
885
原创 JVM 垃圾回收器
本文详细解析了主流JVM垃圾回收器的核心机制、适用场景及性能特点,包括SerialGC、ParallelGC、CMS、G1、ZGC和Shenandoah。SerialGC适用于小内存和单核心环境,简单高效但STW时间较长;ParallelGC适合后台计算任务,追求高吞吐量;CMS针对低延迟需求,适合交互式应用;G1在大内存场景下兼顾吞吐量和低延迟;ZGC和Shenandoah则专注于超低延迟,适用于金融交易和实时数据处理等场景。文章还提供了横向对比和选择建议,帮助开发者根据具体业务需求选择最优的垃圾回收器,
2025-05-19 16:57:29
871
原创 分布式任务调度XXL-Job
XXL-Job 是一款轻量级、分布式的任务调度平台,其核心设计解决了传统任务调度(如Quartz)在分布式场景下的任务分片、高可用、可视化管控等痛点。以下从原理、核心架构、应用场景、代码示例及关联中间件展开详解
2025-05-13 23:34:23
1141
原创 MapReduce 模型
MapReduce是面向大数据并行处理的计算模型、框架和平台,它隐含了以下三层含义:1)MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。2)MapReduce是一个并行计算与运行软件框架(Software Framework)。
2025-05-13 23:22:36
1210
原创 最新 JetBrains 全家桶
JetBrains 全家桶是一套专为程序员设计的综合性开发工具包,包含多种针对不同编程语言和开发场景的集成开发环境(IDE)和工具。例如,IntelliJ IDEA 支持 Java 和多语言开发,AppCode 专注于 iOS 和 macOS 应用开发,CLion 为 C/C++ 开发者提供专业支持,DataGrip 是数据库管理工具,GoLand 是 Go 语言开发的理想选择,PhpStorm 专为 PHP 开发打造,PyCharm 是 Python 开发的专业 IDE,Rider 支持跨平台 .NET
2025-05-12 16:54:17
749
原创 ClickHouse 深度解析:列式存储为何成为 OLAP 的「核武器」
ClickHouse是一个高性能的面向列的 SQL 数据库管理系统 (DBMS),用于在线分析处理 (OLAP)。
2025-03-21 16:17:23
892
原创 Spring 事务
@Transactional 是基于 AOP 实现的,AOP ⼜是使⽤动态代理实现的。如果⽬标对象实现了接⼝,默 认情况下会采⽤ JDK 的动态代理,如果⽬标对象没有实现了接⼝,会使⽤ CGLIB 动态代理。 @Transactional 在开始执⾏业务之前,通过代理先开启事务,在执⾏成功之后再提交事务。如果中途 遇到的异常,则回滚事务。
2025-03-20 16:48:23
1053
原创 Java 性能优化之 JVM 层面深度剖析
Java 的类加载机制采用双亲委派模型,即当一个类加载器收到类加载请求时,它首先会将请求委派给父类加载器,只有当父类加载器无法加载该类时,才会由当前类加载器自己进行加载。这种机制可以保证类的唯一性和安全性。JVM 层面的性能优化是 Java 应用性能优化的重要组成部分。通过合理管理堆内存、选择合适的垃圾回收器、深入理解垃圾回收器的实现原理、优化垃圾回收参数以及进行类加载优化等措施,可以有效提高 Java 应用的性能和稳定性。
2025-02-21 10:11:02
1522
原创 Java 开发者的人工智能探索之旅:从理论到实践
Java 开发者凭借 Java 语言的优势,在人工智能领域拥有广阔的发展空间。通过学习和运用 Java 相关的人工智能框架和工具,能够快速实现各类人工智能项目。未来,随着人工智能技术的持续发展,Java 在人工智能领域的应用将更加深入和广泛。Java 开发者应不断学习和探索,紧跟技术发展趋势,充分发挥 Java 在人工智能开发中的潜力,为行业发展贡献力量。
2025-02-20 17:08:35
817
原创 人工智能:开启智能时代的钥匙
在科技日新月异的当下,人工智能(Artificial Intelligence,简称 AI)无疑是最具变革性力量的技术。它早已从科幻作品的想象中走进现实,渗透至生活与工作的每一处角落,深度重塑着我们的生活方式与社会运行逻辑。从日常使用的智能语音助手,到改变出行模式的自动驾驶汽车;从助力安防的图像识别技术,到精准辅助医疗诊断的智能系统,人工智能正以超乎想象的速度融入我们的生活,展现出无可限量的发展潜力与广阔前景
2025-02-20 16:57:31
691
原创 Java 集合框架深入解析
Java 集合框架是一个涵盖接口、实现类和算法的综合性架构,主要由Collection和Map两大接口体系构成。Collection接口派生出List、Set等子接口,负责处理单个元素的集合;Map接口则专注于键值对的存储。这种层次分明的结构设计,使得开发者能够根据具体需求选择最合适的数据结构,极大地提高了数据处理的效率和灵活性,避免了重复开发底层数据结构的繁琐工作。Java 集合框架是一个功能强大、设计精巧的工具集,深入理解其原理和使用方法,能够显著提升 Java 开发效率和代码质量。
2025-02-20 16:45:59
655
原创 Spring Boot 3 携手 GraalVM:开启 Java 应用原生编译新时代
Spring Boot 3 携手 GraalVM:开启 Java 应用原生编译新时代
2025-02-17 13:06:41
1616
原创 Spring Boot 3新特性
Spring Boot 3 是基于 Spring 框架的快速应用开发框架,旨在极大地简化 Spring 应用的初始搭建、配置以及部署过程。Spring 生态系统自诞生以来,以其强大的功能和灵活性,成为企业级 Java 开发的首选框架。然而,传统的 Spring 应用开发往往需要大量的样板代码和复杂的 XML 配置,这在一定程度上增加了开发的难度和成本。Spring Boot 的出现,正是为了解决这些问题,它通过约定优于配置的原则,让开发者能够快速上手,专注于业务逻辑的实现
2025-02-17 11:22:17
1519
原创 双亲委派机制
每个类加载器都有自己的命名空间 而命名空间中存储着类加载器加载过的类全限定名 在java中两个类是否相同时是通过 ClassLoaderId+PackageName+ClassName 进行判断 也就代表着是允许同时存在两个包名和类名完全一致的class的 为了打破这种类加载器之间的隔离性所以引出了双亲委派机制。七月来临,各省高考分数已揭榜完成。2. 当Ext拓展类加载器尝试加载一个类时 也会先去自己的命名空间中查询是否加载过这个类 如果没有加载过则委托给父类加载器Bootstrap根类加载器进行加载。
2024-07-05 16:26:39
802
1
原创 java Spi、springSpi、dubboSpi
Java SPI 适用于静态的服务加载,Spring SPI 适用于 Spring 容器的生命周期扩展,而 Dubbo SPI 则提供了更加灵活和强大的服务扩展机制
2024-06-28 11:20:52
880
原创 雪花算法的实现原理
在雪花形成过程中,会形成不同的结构分支,所以说大自然中不存在两片完全一样的雪花,每一片雪花都拥有自己独特的形状。雪花算法的意思是生成的ID如雪花般独一无二。在很多大厂的全局ID组件中,都用到了雪花算法,比如百度的UidGenerator,美团的Leaf算法等。雪花算法是由Twitter开源的分布式ID生成算法,主要应用于分库分表场景中的全局ID作为业务主键,或者生成全局唯一的订单号的场景。4) 高可用:发布一个获取分布式ID的请求,服务器至少要保证99.999%的情况下可以创建一个全局唯一的分布式ID。
2024-02-20 16:37:26
1042
原创 自定义限制接口访问次数(ExpiringMap)
ExpiringMap简介:它具有高性能、低开销、零依赖、线程安全、使用ConcurrentMa的实现过期entries等优点。主要特点包括:过期策略、可变有效期、最大尺寸、侦听器过期、延迟输入加载、过期自省。可设置Map中的Entry在一段时间后自动过期,key过期 value同时会过期。可设置Map最大容纳值,当到达Maximum size后,再次插入值会导致Map中的第一个值过期。可添加监听事件,在监听到Entry过期时调度监听函数。可以设置懒加载,在调用get()方法时创建对象。
2023-02-17 13:40:09
911
1
原创 Redis hash实际应用
使用hash 省内存。在hash类型中,一个key可以对应多个多个field,一个field对应一个value。将一个对象存储为hash类型的好处:较于每个字段都单独存储成string类型来说,更能节约内存;将具有同一类规则的数据放到redis中的一个数据容器里,防止数据上不同规则的key值上的相斥,便于查找数据。
2022-11-16 22:33:37
1629
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人