2024年3月6日
HashMap 源码中主要了解其核心源码及实现逻辑。ConcurrentHashMap 就不再重复那些数据结构相关的内容咯,这里重点看一下它的并发安全实现。源码如下。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65……
阅读全文
2024年3月6日
一文直接带你吃透 ArrayList ArrayList 是日常开发中相当常见、面试也相当常考的一种 JDK 集合类,了解并熟悉、甚至能实现一个 ArrayList 对面试、提升自己编码功底大有益处。 一、写给小白 ArrayList 简单使用技巧 这部分是 ArrayList 的简单使用技巧,主要是介绍 ArrayList 的几个常见方法。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 /**……
阅读全文
2024年3月6日
前面我们分析了 Thread 类的源码,有了前面的铺垫,通过源码 理解 ThreadLocal 的秘密就容易多了。 ThreadLocal 类 提供了 get/set 线程局部变量的实现,ThreadLocal 成员变量与正常的成员变量不同,每个线程都可以通过 ThreadLocal 成员变量 get/set 自己的专属值。ThreadLocal 实例 通常是类中的私有静态变量,常用于将状态与线程关联,例……
阅读全文
2024年3月6日
本来想看 ThreadLocal 的源码的,但发现其中最重要的 get/set 方法都是操纵的 Thread 类 中的 threadLocals 变量 (java.lang.ThreadLocal.ThreadLocalMap),索性先来看一下 Thread 的源码吧,可以留意一下其中与 ThreadLocal 相关的属性,这样下次阅读 ThreadLocal 的核心 API 时,就能够轻易理解其原理咯。不多 BB,直接上硬菜。 实现……
阅读全文
2024年3月6日
String 的源码大家应该都能看懂,这里就不一一分析咯,重点讲一下 equals()和 hashcode()方法,然后看一下 String 类常用方法的实现,就当一起温习一下咯。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65……
阅读全文
2024年3月6日
Dubbo Remote 支持多种传输协议,其中之一就是基于 Netty 的远程通信。在 Dubbo Remote 中,基于 Netty 的远程通信是通过 NettyServer 和 NettyClient 两个实现类来完成的。 以下是 Dubbo Remote 中基于 Netty 的远程通信的工作原理: 服务提供方在启动时创建 NettyServer 对象,并绑定到指定的端口上。 服务提供方在 NettyServer 上注册服务处理器,用于处理客户端的请求。 服务消费方在调用服务时创……
阅读全文
2024年3月6日
Dubbo Remote 支持多种传输协议,其中之一就是基于 HTTP 的远程通信。在 Dubbo Remote 中,基于 HTTP 的远程通信是通过 HttpServer 和 HttpClient 两个实现类来完成的。 以下是 Dubbo Remote 中基于 HTTP 的远程通信的工作原理: 服务提供方在启动时创建 HttpServer 对象,并绑定到指定的端口上。 服务提供方在 HttpServer 上注册服务处理器,用于处理客户端的请求。 服务消费方在调用服务时创……
阅读全文
2024年3月6日
Dubbo Remote Transport 是 Dubbo 远程通信的基础组件,它提供了基于各种传输协议的通信能力,如 TCP、HTTP 等。Dubbo Remote Transport 的主要作用是负责建立和维护客户端和服务端之间的连接,并进行数据的发送和接收。 Dubbo Remote Transport 的核心接口是 Transporter,它定义了传输协议需要实现的方法,包括创建服务器、连接客户端和……
阅读全文
2024年3月6日
Exchange组件 Dubbo Remote Exchange 是一个基于 Dubbo 框架的远程通信组件,它提供了一系列的远程通信协议和序列化协议,用于实现微服务之间的通信和数据交换。 Dubbo Remote Exchange 支持多种通信协议,包括 Dubbo 协议、HTTP 协议、WebSocket 协议等,用户可以根据自己的需求选择不同的协议进行通信。同时,Dubbo Remote Exchange 还……
阅读全文
2024年3月6日
dubbo-remoting 模块整体结构设计 服务治理框架 大致可分为 “服务通信” 和 “服务管理” 两部分,前面我们分析了有关注册中心的源码,也就是服务管理,接下来要分析的就是跟服务通信有关的源码,也就是远程通讯模块。该模块中提供了多种客户端和服务端通信的功能,而在对 NIO 框架选型上,dubbo 交由用户选择,它集成了……
阅读全文