# java
围绕 java 的技术文章与经验分享。
共 967 篇文章浅析NIO包中的Buffer、Channel 和 Selector
本文将介绍 Java NIO 中三大组件 Buffer、Channel、Selector 的使用。 本来要一起介绍 非阻塞 IO 和 JDK7 的 异步 IO 的,不过因为之前的文章真的太长了,有点影响读者阅读,所以这里将它们放到另一篇文章中进行介绍。 Buffer 一个 Buffer…
JAVA NIO 一步步构建IO多路复用的请求模型
当前环境 jdk == 1.8 知识点 nio 下 I/O 阻塞与非阻塞实现 SocketChannel 介绍 I/O 多路复用的原理 事件选择器与 SocketChannel 的关系 事件监听类型 字节缓冲 ByteBuffer 数据结构 场景 接着上一篇中的站点访问问题,如果我们需要并发访问10个不同的网站,我们该如何处理? 在上一篇中,我们使用了…
Spring涉及到的9种设计模式
设计模式 作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。 在IT学习者网站就设计模式的内在价值做一番探讨,并以spring为例进行讲解,只有领略了其设计的思想理念,才能在工作学习中运用到“无形”。…
Java设计模式之行为型模式(策略,观察者等)
行为型模式 行为型模式关注的是各个类之间的相互作用,将职责划分清楚,使得我们的代码更加地清晰。 策略模式 策略模式太常用了,所以把它放到最前面进行介绍。它比较简单,我就不废话,直接用代码说事吧。 下面设计的场景是,我们需要画一个图形,可选的策略就是用红色笔来画,还是绿色笔来画,或者蓝色笔来画。 首先,先定义一个策略接口: public interface…
使用 Spring Event 解耦代码
Spring Event 是 Spring 框架的一个重要功能,它增强了不同组件之间的通信。该功能在灵活性方面超越了传统的方法调用,并且基于松耦合架构,减少了组件依赖性并简化了测试、维护和故障排除。 Spring Event 的好处 Spring Events 的主要优势在于其发布-…
如何高效地使用 Java 字符串
在 Java 中高效使用字符串对于优化性能和内存使用至关重要,尤其是在涉及大量字符串操作的应用程序中。 以下是更高效使用字符串的几种策略: 循环中拼接字符串 对于字符串的拼接,尤其是内部循环中,请使用 StringBuilder (non-thread-safe) 或 StringBuffer (thread-safe)。…
Java CompletableFuture 异步超时实现探索
JDK 8 中 CompletableFuture 没有超时中断任务的能力。现有做法强依赖任务自身的超时实现。本文提出一种异步超时实现方案,解决上述问题。 JDK 8 是一次重大的版本升级,新增了非常多的特性,其中之一便是 CompletableFuture 。自此从 JDK 层面真正意义上的支持了基于事件的异步编程范式,弥补了 Future 的缺陷。…
Spring Boot + gRPC 构建可扩展的微服务
本文是一份详尽且深入的指南,旨在帮助读者理解并实现将 gRPC 通过 Maven 集成到 SpringBoot 项目中的全过程。文章首先以高度概括的方式探讨了 gRPC 的理论基础,为读者提供了对其核心概念的清晰认识。随后,我们将转向更为具体的实践层面,展示 gRPC 在实际应用中的多种实现方式。…