刷新
Java标签跳转:一个鲜为人知但却很实用的小技巧

博主头像 在C系风格的代码中,标签是一个容易掌握但是却很难熟练使用的特性,容易主要体现在其规则简单,配合goto很容易就能实现一些比较复杂的逻辑。很难熟练使用主要是体现在对于复杂场景下,不好对流程把控,调试,也不好维护,是典型的面向过程的特性。前两天在看jdk源码的时候,无意中看到线程池中这个方法的源码: 1 ...

保证线程安全的方法有哪些

博主头像 吃透Java线程安全!一文梳理5大类线程安全方案,覆盖无状态对象、volatile、锁机制、ThreadLocal等核心技术。详解CAS原理、读写锁、DCL单例等高频实战场景,对比各方案性能与适用场景,汇总死锁、内存泄漏等疑难坑点。附带面试真题模拟+优质源码,帮你搞定并发编程,提升面试与实战能力! ...

SpringBoot 3.x 整合 Virtual Threads 虚拟线程排坑指南

博主头像 本文深入剖析 Spring Boot 3.2+ 与 Java 21 虚拟线程的底层整合原理,直击高并发 I/O 场景下载体线程调度机制,重点攻克 synchronized 引发的 Pinning(线程钉死)与 ThreadLocal 滥用两大生产级暗礁,并提供全套落地配置、排查手段与性能验证方案。 ...

DTO、VO、PO 到底要不要拆?一篇讲透 Java 实体分层的底层逻辑

博主头像 Java 开发常纠结 PO、DTO、VO 是否拆分。本文拆解分层实体职责与完整数据流转链路,核心亮点:采用 MapStruct 编译期对象转换,对比反射工具性能与类型安全;结合实战代码演示分层脱敏;给出落地避坑方案,用 ArchUnit 做架构校验防止 PO 外泄。附带决策树,拒绝八股式硬套,按项目... ...

Java学习随笔:受检异常到底该不该用(2026-09-22)

博主头像 写 Java 的时候,异常处理是绕不过去的一环,而最让人纠结的,大概就是受检异常该不该用。Exception 的子类里,除了 RuntimeException 这一支,其余都被编译器要求必须处理:要么用 try catch 捕获,要么在方法签名上抛出。这个设计的初衷很好,它是想把“可能失败”这件事写 ...

Java学习随笔:Spring 的依赖注入到底解决了什么问题(2026-09-21)

博主头像 刚开始学 Spring 的时候,“控制反转”和“依赖注入”这两个词让我困惑了很久。字面意思都认识,但合在一起就不知道在说什么。直到我自己用普通 Java 写了一段代码,再对比 Spring 的写法,才慢慢体会到它们想解决的问题其实很朴素:对象之间的依赖关系,究竟应该由谁来负责建立。 在不用 Spri ...

百万数据Excel如何快速导入导出

博主头像 还在被百万级Excel导入导出OOM、接口超时、性能卡顿问题困扰?本文摒弃传统POI UserModel模式,基于流式处理+分批操作+异步MQ+资源隔离大厂范式,采用EasyExcel+SXSSF实现读写优化。搭配多线程分片、JDBC批量入库、OSS文件存储等方案,100万数据处理仅需25秒,性能提... ...

身份证核验接口 Java 版完整接入:签名工具类的三个细节与官方 Demo 的四个改进

最近在给公司的实名认证服务重写 Java 接入层,过程中把官方 Demo、网上流传的工具类挨个过了一遍,发现能跑和能上生产之间差的东西还不少:编码、超时、null 传播、密钥管理,每一项都是真实翻车点。整理成这篇,从签名工具类写到完整调用,供同样要接这类接口的朋友参考。 背景:这是个什么接口 身份证 ...

Java学习随笔:线程池的核心参数到底在管什么(2026-09-20)

博主头像 学习并发编程的时候,线程池是一个绕不开的话题。刚开始我以为它只是“预先创建一批线程,有任务就拿来用”这么简单,直到真正去读 ThreadPoolExecutor 的源码和文档,才发现它的核心其实是一组互相配合的参数。理解这些参数各自管什么,比记住“用线程池比直接 new Thread 好”这句话要有 ...

如何快速上传10G文件

博主头像 详解 10G 大文件上传完整落地方案,采用分片并发、断点续传、秒传能力。前端 WebWorker 增量哈希 + Promise 并发池;后端基于 MinIO+Redis+RabbitMQ,搭配零拷贝合并、分布式锁。附带 Java/JS 核心代码与面试问答,覆盖性能优化、异常兜底,可直接用于生产。 ...

TDengine OSS vs Doris 使用场景和功能对比

TDengine OSS 使用场景 IOT设备把时序数据(时间戳+测点值+设备标签)写入TDengine之后,主要做:时序查询、时间窗口聚合、实时告警、流式订阅、自动降采样等。核心模型是超级表Stable+子表(一个设备一张子表) 1.基础查询 -- 查询设备 d1001 在某个时间段的原始数据 S ...

Java学习随笔:JVM 如何判断对象可以被回收(2026-09-17)

博主头像 学习 Java 的过程中,很多同学会把注意力放在语法、集合和框架上,却容易忽略 JVM 内部究竟发生了什么。最近我在复习垃圾回收时,才对“对象什么时候会被回收”这个问题有了更清楚的认识。它并不像表面看起来那么简单:并不是某个变量不再使用,对象就会立刻消失,而是需要虚拟机通过一套相对严谨的机制去判断。 ...

<123···25>