Java程序员工作实战
文章平均质量分 77
Talk is cheap,show your code.
Java项目实战经验、项目结构分析、业务场景设计、CodeReview。
tataCrayon|啾啾
Java 开发|正在深入大模型
掘金:https://juejin.cn/user/519421715817767/posts
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重构系统:程序员的必备技能指南
本文探讨了代码重构的重要性和实施方法。重构通过优化代码结构提升可维护性,常见时机包括出现长函数、复杂条件判断等情况。建议采用小步渐进式重构,配合测试驱动开发。文章提供了重构流程表(分析→提取→测试等)和常见陷阱解决方案。尽管重构能降低70%维护成本、提升50%开发效率,但企业常因短期产出压力而忽视。建议通过代码评审、技术氛围培养重构思维,并引入AI辅助质量检测。重构是技术债务的长期解决方案,需要平衡业务需求与代码健康。原创 2025-10-22 21:51:45 · 875 阅读 · 0 评论 -
日活百万?高并发ToC系统落地基石
众所周知,高用户量的ToC系统往往更关心:**高并发、高可用、低延迟、海量用户、用户体验、快速迭代**等。>当然,不包括哪些僵尸用户日活不到1w冒充高并发的ToC。>也不包括某xxOKR虚假宣传的数据量=并发量。让我们来一起看看高并发、低延迟思想下的经典代码范例。本篇涵盖并行调用、高性能计数、批处理、缓存等核心模式。原创 2025-10-01 19:00:00 · 1697 阅读 · 0 评论 -
Java性能测试利器:JMH性能基准测试
摘要: 本文介绍了JMH(Java Microbenchmark Harness)工具在Java微基准测试中的应用。JMH通过处理JVM优化(如JIT编译、死码消除等)确保测试准确性。文章详细解析了JMH的核心注解(如@Benchmark、@State、@Setup等)和参数配置,并提供了避免测试陷阱的实用技巧(如使用Blackhole防止死码消除)。此外,还强调了测试代码的合理范围,避免过度优化干扰结果。推荐通过官方示例和资源深入学习JMH的高级用法。原创 2025-09-22 20:00:00 · 2038 阅读 · 0 评论 -
Java线程池任务丢失怎么办?CodeReview
线程池可能堆积有一些任务在队列中等待处理,如果等待处理时程序宕机、崩溃了怎么办呢?两年前我的处理方案是为重要任务设计持久化,在任务进队列前持久化,然后处理完成后更改任务持久化状态。并为崩溃任务设计兜底扫描线程。现在看来这样的方案即复杂、性能开销又高,兜底方案在升级至分布式架构时还需要分布式任务协调,扩展性差。今天做一个CodeReview分享,有没有更好的方案呢?原创 2025-06-12 12:15:00 · 203 阅读 · 0 评论 -
分布式ID最新最佳实践?UUIDv7介绍
在过去的学习中,我们已经了解到,一个有序的ID往往对插入更友好,如果能带上时间标识,那么对运维也很友好。而在分布式系统中,全局唯一也是必不可少的要求。关于高效生成有序带时间的全局唯一的ID,我们常见的方案是雪花ID(Snowflake)。今天,我们一起来了解一个**IETF官方标准**,宣传自己更符合未来趋势的方案——UUIDv7。原创 2025-06-11 00:03:08 · 2235 阅读 · 0 评论 -
Java反射操作百倍性能优化
摘要:优化Java反射性能的实用技巧 本文介绍了提升Java反射性能的4种核心方法:1)避免在热点代码中使用反射;2)缓存反射对象以减少查找开销;3)使用setAccessible(true)跳过访问检查;4)采用MethodHandle替代传统反射。重点对比了反射与MethodHandle的本质差异,包括性能、类型安全和灵活性,并通过动态调用示例展示了MethodHandle的实际应用场景。这些优化技巧尤其适用于框架开发等需要动态调用的场景,能显著降低反射操作带来的性能损耗。原创 2025-06-08 22:53:41 · 1080 阅读 · 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 · 1322 阅读 · 0 评论 -
【Java实战】系统时间是如何坑人的?
为什么数据库服务器的时间是 12:00:00,我们的应用程序查询出来的时间却不是呢?可能是时间不一致,多半是时区偏移的影响。原创 2025-06-04 08:30:00 · 629 阅读 · 0 评论 -
TTL-Java低侵入的线程池值传递
ThreadLocal存储值线程安全的本质,是获取线程实例独享的的ThreadLocalMap属性。且k-v内容为this-value.在线程池复用线程的场景中,如果每次使用ThreadLocal存储值而不清除,线程的ThreadLocalMap将会持续扩容,直至内存溢出。为此,我们需要在每次使用完ThreadLocal后进行remove操作。但是在复杂场景中,我们可能忘记清理。甚至在一些场景,我们希望主线程中ThreadLocal的值可以低侵入地传递到子线程中,那么,我们应该怎么做呢?原创 2025-05-31 23:00:01 · 1714 阅读 · 0 评论 -
Java源码中有哪些细节可以参考?(持续更新)
一些Java源码的细节。原创 2025-05-30 12:37:24 · 429 阅读 · 0 评论 -
Java程序为什么慢?P1——启动时刻
程序启动慢的原因主要包括:初始化任务过多(框架、资源、自定义任务)和硬件性能不足;可通过精简初始化内容、异步非关键任务优化。方法首次调用慢源于JVM懒加载机制,建议对核心业务代码预热。Feign首次调用慢因TCP握手和服务发现延迟,可启用预热及Ribbon/LoadBalancer的缓存功能(如ribbon.eager-load.enabled或spring.cloud.loadbalancer.cache)加速后续请求。注意预热需针对高频核心路径,避免过度预热。原创 2025-05-29 08:30:00 · 322 阅读 · 0 评论 -
Java编程质量提升-大纲
Java编程质量提升大纲原创 2025-05-22 07:45:00 · 361 阅读 · 0 评论 -
effective-java29-30:泛型-类型灵活使用与限制
不要使用原生类型。在类和方法中使用泛型原创 2025-04-24 15:27:20 · 397 阅读 · 0 评论 -
Java异常处理最佳实践
一些好的异常处理实践。原创 2025-04-19 22:59:52 · 1328 阅读 · 0 评论 -
Java对象拷贝一文通
Java的浅拷贝与深拷贝。重点介绍了深拷贝的选择原创 2025-04-15 22:24:13 · 910 阅读 · 0 评论 -
链式编程与Builder模式:复杂构造方法解决之道
介绍了链式编程和Builder模式。参数爆炸时对象构造解法原创 2025-04-15 22:20:14 · 472 阅读 · 0 评论 -
fastjson踩坑,转换对象多出来属性
fastjson转换对象为jsonStr后多出属性。原创 2022-10-17 20:52:36 · 1697 阅读 · 0 评论 -
Java的JsonObject与JsonArray转换
JsonArrayStr\JsonObjectStr转换原创 2022-09-16 13:39:34 · 12057 阅读 · 0 评论 -
【Java实战】备忘-Java读取表格为属性字段
在开发使用代码将其对接方提供的表格转换为属性字符串原创 2022-08-29 09:56:18 · 268 阅读 · 0 评论
分享