
Java实战
文章平均质量分 74
Talk is cheap,show your code.
Java项目实战经验、项目结构分析、业务场景设计、CodeReview。
tataCrayon|啾啾
Java 开发|正在深入大模型
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java线程池任务丢失怎么办?CodeReview
线程池可能堆积有一些任务在队列中等待处理,如果等待处理时程序宕机、崩溃了怎么办呢?两年前我的处理方案是为重要任务设计持久化,在任务进队列前持久化,然后处理完成后更改任务持久化状态。并为崩溃任务设计兜底扫描线程。现在看来这样的方案即复杂、性能开销又高,兜底方案在升级至分布式架构时还需要分布式任务协调,扩展性差。今天做一个CodeReview分享,有没有更好的方案呢?原创 2025-06-12 12:15:00 · 164 阅读 · 0 评论 -
分布式ID最新最佳实践?UUIDv7介绍
在过去的学习中,我们已经了解到,一个有序的ID往往对插入更友好,如果能带上时间标识,那么对运维也很友好。而在分布式系统中,全局唯一也是必不可少的要求。关于高效生成有序带时间的全局唯一的ID,我们常见的方案是雪花ID(Snowflake)。今天,我们一起来了解一个**IETF官方标准**,宣传自己更符合未来趋势的方案——UUIDv7。原创 2025-06-11 00:03:08 · 1446 阅读 · 0 评论 -
Java反射操作百倍性能优化
摘要:优化Java反射性能的实用技巧 本文介绍了提升Java反射性能的4种核心方法:1)避免在热点代码中使用反射;2)缓存反射对象以减少查找开销;3)使用setAccessible(true)跳过访问检查;4)采用MethodHandle替代传统反射。重点对比了反射与MethodHandle的本质差异,包括性能、类型安全和灵活性,并通过动态调用示例展示了MethodHandle的实际应用场景。这些优化技巧尤其适用于框架开发等需要动态调用的场景,能显著降低反射操作带来的性能损耗。原创 2025-06-08 22:53:41 · 956 阅读 · 0 评论 -
【Java实战】服务是怎么挂掉的?
【摘要】 Java程序异常挂掉常见原因包括:1️⃣ OOM(堆内存、Metaspace、线程栈等不足);2️⃣ 代码逻辑问题(未捕获异常、死锁、无限循环);3️⃣ JVM崩溃(内部错误或JNI调用故障);4️⃣ 外部因素(系统OOM Killer、资源耗尽、依赖服务故障)。分析时需结合日志(应用/JVM/系统)、监控工具(JConsole/Arthas)及Dump文件(Heap/Thread Dump),定位内存泄漏或线程阻塞。合理配置JVM参数与异常处理是预防关键。 (字数:149)原创 2025-06-04 08:30:00 · 1152 阅读 · 0 评论 -
【Java实战】系统时间是如何坑人的?
为什么数据库服务器的时间是 12:00:00,我们的应用程序查询出来的时间却不是呢?可能是时间不一致,多半是时区偏移的影响。原创 2025-06-04 08:30:00 · 573 阅读 · 0 评论 -
TTL-Java低侵入的线程池值传递
ThreadLocal存储值线程安全的本质,是获取线程实例独享的的ThreadLocalMap属性。且k-v内容为this-value.在线程池复用线程的场景中,如果每次使用ThreadLocal存储值而不清除,线程的ThreadLocalMap将会持续扩容,直至内存溢出。为此,我们需要在每次使用完ThreadLocal后进行remove操作。但是在复杂场景中,我们可能忘记清理。甚至在一些场景,我们希望主线程中ThreadLocal的值可以低侵入地传递到子线程中,那么,我们应该怎么做呢?原创 2025-05-31 23:00:01 · 1605 阅读 · 0 评论 -
Java源码中有哪些细节可以参考?(持续更新)
一些Java源码的细节。原创 2025-05-30 12:37:24 · 419 阅读 · 0 评论 -
Java程序为什么慢?P1——启动时刻
程序启动慢的原因主要包括:初始化任务过多(框架、资源、自定义任务)和硬件性能不足;可通过精简初始化内容、异步非关键任务优化。方法首次调用慢源于JVM懒加载机制,建议对核心业务代码预热。Feign首次调用慢因TCP握手和服务发现延迟,可启用预热及Ribbon/LoadBalancer的缓存功能(如ribbon.eager-load.enabled或spring.cloud.loadbalancer.cache)加速后续请求。注意预热需针对高频核心路径,避免过度预热。原创 2025-05-29 08:30:00 · 278 阅读 · 0 评论 -
Java编程质量提升-大纲
Java编程质量提升大纲原创 2025-05-22 07:45:00 · 342 阅读 · 0 评论 -
effective-java29-30:泛型-类型灵活使用与限制
不要使用原生类型。在类和方法中使用泛型原创 2025-04-24 15:27:20 · 320 阅读 · 0 评论 -
Java异常处理最佳实践
一些好的异常处理实践。原创 2025-04-19 22:59:52 · 1227 阅读 · 0 评论 -
Java对象拷贝一文通
Java的浅拷贝与深拷贝。重点介绍了深拷贝的选择原创 2025-04-15 22:24:13 · 858 阅读 · 0 评论 -
链式编程与Builder模式:复杂构造方法解决之道
介绍了链式编程和Builder模式。参数爆炸时对象构造解法原创 2025-04-15 22:20:14 · 436 阅读 · 0 评论 -
fastjson踩坑,转换对象多出来属性
fastjson转换对象为jsonStr后多出属性。原创 2022-10-17 20:52:36 · 1605 阅读 · 0 评论 -
Java的JsonObject与JsonArray转换
JsonArrayStr\JsonObjectStr转换原创 2022-09-16 13:39:34 · 11812 阅读 · 0 评论 -
【Java实战】备忘-Java读取表格为属性字段
在开发使用代码将其对接方提供的表格转换为属性字符串原创 2022-08-29 09:56:18 · 227 阅读 · 0 评论