玩转 @Async 注解

引言 在现代的Web应用程序中,异步处理已经成为提升用户体验和提高系统性能的关键技术之一。随着用户数量的增长以及业务逻辑的复杂化,传统的同步处理方式往往会导致应用程序的响应速度降低,尤其是在处理耗时较长的任务时。为了解决这一问题,Spring Boot提供了一种简单而强大的机制—— @Async…

hello hello 发布于 2024-08-21

Java 里的 Optional 魔法:拿捏空值,yyds!

在 Java 编程的世界里,处理空值一直是一个需要谨慎对待的问题。空指针异常常常让开发者感到头疼,不仅影响程序的稳定性,还可能导致难以排查的错误。而 Java 中的 Optional 类的出现,为我们提供了一种更优雅、更安全的空值处理方式。 在实际的开发中,正确且高效地运用 Optional…

hello hello 发布于 2024-08-21
hello hello 发布于 2024-08-21

Java Random:随机 or 随缘?

探索随机性 在软件开发的世界里,随机数生成是一项既古老又现代的技术。从早期的简单概率游戏到今天的复杂算法和加密系统,随机数都扮演着不可或缺的角色。它们不仅能够为程序增添不可预测性和趣味性,还能在模拟、统计分析、机器学习乃至安全性方面发挥关键作用。 Java 作为一种广泛使用的编程语言,提供了多种机制来生成随机数。其中最基础且最为人所熟知的是…

hello hello 发布于 2024-08-21

JVM内存的结构与消失的永久代介绍

前言 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢? 其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。…

hello hello 发布于 2024-08-21

为什么2.01 变成了 2.00 ,1分钱的教训不可谓不深刻

前些日子,测试提过来一个bug,说下单价格应该是 2.01,但是在订单详情中展示了2.00元。我头嗡的一下子,艹,不会是因为double 的精度问题吧~ 果不其然,经过排查代码,最终定位原因订单详情展示金额时,使用double 进行了金额转换,导致金额不准。…

hello hello 发布于 2024-08-20

2024面试必问:系统频繁Full GC,你有哪些优化思路?

不久之前,我遇到了一个Java GC问题。有个服务在高峰期耗时增加,触达上游超时配置,导致上游调用失败率增加。经过初步排查确认这并非因为个别接口的性能恶化,而是服务整体上性能恶化。 最终定位原因是,高峰期 YoungGC和 FullGC 频率过高,导致耗时增加。遂决定从GC方向优化性能,经过两周的治理,GC问题得到大幅改善,接口耗时下降30%。…

hello hello 发布于 2024-08-20

原来,这才是JDK推荐的线程关闭方式

JDK在线程的Stop方法时明确不得强行销毁一个线程,要优雅的退出线程。 何谓优雅退出线程,即业务将进行中请求正确被处理,取消待执行请求,执行资源回收,最终Thread Runable run 方法return 结束执行。 首先问为什么要退出一个线程,再提问如何退出一个线程 任务执行完成,或异常终止,任务认为无需再占用线程。…

hello hello 发布于 2024-08-20

Tomcat中的Connector源码分析

前言 本文将介绍 Tomcat 中的 NIO 使用,使大家对 Java NIO 的生产使用有更加直观的认识。 虽然本文的源码篇幅也不短,但是 Tomcat 的源码毕竟不像 Doug Lea 的并发源码那么“变态”,对于大部分读者来说,阅读难度比之前介绍的其他并发源码要简单一些,所以读者不要觉得有什么压力。 本文基于 Tomcat…

hello hello 发布于 2024-08-20

Java网络与NIO总结

Java IO Java IO的基础知识已在前文讲过 Socket编程 socket是操作系统提供的网络编程接口,他封装了对于TCP/IP协议栈的支持,用于进程间的通信,当有连接接入主机以后,操作系统自动为其分配一个socket套接字,套接字绑定着一个IP与端口号。通过socket接口,可以获取tcp连接的输入流和输出流,并且通过他们进行读取和写入此操作。…

hello hello 发布于 2024-08-20
上一页 下一页