源码阅读系列之Java
文章平均质量分 92
聚焦 Java 核心源码剖析,从 JDK 基础类库到经典框架底层实现,拆解集合框架、并发包、IO/NIO 等源码逻辑,结合场景案例解析设计思想与性能优化点,助你穿透代码表象,掌握 Java 技术栈的底层运行原理。
·云扬·
欢迎访问我的个人知识库:https://www.yuque.com/yuqueyonghunujzjn
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Java源码阅读系列65】深度解读Java ClassLoader 源码
在Java的运行时体系中,ClassLoader(类加载器)是实现“动态类加载”的核心组件。它负责将类的字节码(.class文件)加载到JVM内存中,生成对应的Class对象,并确保类的唯一性与安全性。本文将基于JDK 8的ClassLoader源码,深入解析其设计逻辑与核心机制。原创 2025-08-04 09:10:54 · 852 阅读 · 0 评论 -
【Java源码阅读系列64】深度解读Java PhantomReference 源码
在Java的引用体系中,PhantomReference(虚引用)是最特殊的一种引用类型。其核心特性是:无法通过虚引用获取目标对象,仅在对象被垃圾回收(GC)时触发队列通知。这种特性使其成为实现“对象销毁前最后一次资源清理”的关键工具(如释放本地内存、关闭文件句柄)。本文将基于JDK 8的PhantomReference源码,深入解析其设计逻辑与核心机制。原创 2025-08-03 14:46:15 · 1180 阅读 · 0 评论 -
【Java源码阅读系列63】深度解读Java WeakReference 源码
在Java的引用体系中,WeakReference(弱引用)是一种“最弱”的显式引用类型。其核心特性是:当一个对象仅被弱引用指向时,垃圾回收器(GC)会立即回收该对象(无论内存是否充足)。这种特性使其成为避免内存泄漏、实现轻量级缓存的重要工具。本文将基于JDK 8的WeakReference源码,深入解析其设计逻辑与核心机制。原创 2025-08-02 15:59:54 · 778 阅读 · 0 评论 -
【Java源码阅读系列62】深度解读Java SoftReference 源码
在Java的引用体系中,SoftReference(软引用)是一种“内存敏感型”引用,其核心特性是:当内存不足时,垃圾回收器(GC)会主动回收被软引用指向的对象。这种特性使其成为实现缓存系统的重要工具(如图片缓存、临时数据存储)。本文将基于JDK 8的SoftReference源码,深入解析其设计逻辑与核心机制。原创 2025-08-01 10:49:39 · 939 阅读 · 0 评论 -
【Java源码阅读系列61】深度解读Java Reference 类源码
在Java的内存管理体系中,Reference 类是连接应用程序与垃圾回收器(GC)的关键桥梁。它通过定义引用对象的通用行为,支持了软引用(SoftReference)、弱引用(WeakReference)、虚引用(PhantomReference)等不同类型的引用语义,是实现内存敏感缓存、资源清理等功能的底层基础。本文将基于JDK 8的Reference类源码,深入解析其设计逻辑与核心机制。原创 2025-07-24 08:52:23 · 802 阅读 · 0 评论 -
【Java源码阅读系列60】深度解析Java内存管理与GC
Java的自动内存管理(尤其是垃圾回收,GC)是其“一次编译,到处运行”的核心优势之一。开发者无需手动释放内存,但理解内存管理的底层机制(如引用类型、GC触发条件)对优化应用性能、避免内存泄漏至关重要。本文将结合JDK 1.8源码,深入解析`java.lang.ref.Reference`体系及`System.gc()`的底层逻辑。原创 2025-07-23 09:11:26 · 615 阅读 · 0 评论 -
【Java源码阅读系列58】深度解析Java 注解与动态代理
Java 的注解(Annotation)和动态代理(Dynamic Proxy)是其生态中最具灵活性的两大特性。注解通过元数据标记代码逻辑,动态代理则通过运行时生成代理类实现行为增强。本文将结合 java.lang.annotation、javax.annotation.processing 和 java.lang.reflect.Proxy 源码,深入解析两者的底层机制与应用场景。原创 2025-07-22 15:49:28 · 980 阅读 · 0 评论 -
【Java源码阅读系列57】深度解读Java MethodHandle 类源码
Java 7 引入的 java.lang.invoke 包是 JVM 动态性的重要升级,而 MethodHandle 作为该包的核心类,是连接静态字节码与动态方法调用的桥梁。它通过类型安全的方式提供了更高效、更灵活的方法调用能力,广泛应用于框架(如 Spring、Groovy)、字节码工具(如 ASM)等场景。本文基于 JDK 1.8 源码,从类结构、关键方法、设计模式、典型场景等维度,深入解析 MethodHandle 的实现逻辑与设计思想。原创 2025-07-20 20:09:43 · 1333 阅读 · 0 评论 -
【Java源码阅读系列56】深度解读Java Constructor 类源码
Java 反射机制中,Constructor 类是操作构造方法的核心入口。它封装了构造方法的元信息(如参数类型、修饰符)和实例化逻辑,是框架(如 Spring、MyBatis)动态创建对象的关键工具。本文基于 JDK 1.8 源码,从类结构、关键方法、设计模式、典型场景等维度,深入解析 Constructor 类的实现逻辑与设计思想。原创 2025-07-19 22:11:05 · 1473 阅读 · 0 评论 -
【Java源码阅读系列59】深度解析Java类加载机制
本文将结合JDK 1.8的ClassLoader源码,深入解析核心实现逻辑,并延伸至JVM底层的类元数据存储机制。原创 2025-07-18 14:47:00 · 1457 阅读 · 0 评论 -
【Java源码阅读系列55】深度解读Java Method 类源码
Java 的反射机制是其动态特性的重要支撑,而 java.lang.reflect.Method 类则是反射调用方法的核心入口。本文将基于 JDK 1.8 源码,从类结构、关键方法、设计模式、典型场景等维度,深入解析 Method 类的实现逻辑与设计思想。原创 2025-07-17 21:20:54 · 1098 阅读 · 0 评论 -
【Java源码阅读系列54】深度解读Java Field 类源码
在 Java 反射体系中,Field 类是操作类字段(Field)的核心工具。它封装了类或接口中单个字段的元信息(如字段名、类型、修饰符),并提供了动态获取或设置字段值的能力。本文将基于 JDK 1.8 源码,从类结构、关键方法、设计模式、典型场景等角度,深入解析 Field 类的实现逻辑与应用价值。原创 2025-07-16 15:22:28 · 1058 阅读 · 0 评论 -
【Java源码阅读系列53】深度解读Java Class 类源码
在 Java 中,反射(Reflection) 是动态操作类、对象、方法的核心能力,而 Class 类则是反射机制的“入口”。本文将基于 JDK 1.8 源码,从类结构、关键方法、设计模式、典型场景等角度,深入解析 Class 类的实现逻辑与设计思想。原创 2025-07-14 16:56:01 · 1062 阅读 · 0 评论 -
【Java源码阅读系列52】深度解读Java AsynchronousSocketChannel 源码
Java NIO 2.0(JDK 7 引入)通过 AsynchronousSocketChannel 提供了异步非阻塞的流式套接字支持,适用于高并发、低延迟的网络场景(如实时通信、微服务网关)。本文将从源码出发,解析其核心机制、关键方法、设计模式及典型使用场景。原创 2025-07-14 10:53:21 · 1026 阅读 · 0 评论 -
【Java源码阅读系列51】深度解读Java SelectorProvider 源码
SelectorProvider 是 Java NIO(New IO)体系中服务提供者(Service Provider)的核心抽象类,负责为选择器(Selector)和可选择通道(如 SocketChannel、ServerSocketChannel 等)提供创建接口。本文将从类结构、核心方法、设计模式等角度,深入解析其源码逻辑。原创 2025-07-13 08:15:00 · 828 阅读 · 0 评论 -
【Java源码阅读系列50】深度解读Java Selector 源码
Java NIO(New IO)的核心优势在于通过多路复用(I/O Multiplexing)实现单线程管理多个I/O通道,显著提升高并发场景下的性能。Selector 作为这一机制的核心组件,负责监听多个可选择通道(SelectableChannel)的I/O事件(如读、写、连接),并通知应用程序哪些通道已就绪。本文将结合 JDK 1.8 源码,从类设计、关键方法、设计模式及实战示例四个维度,深入解析 Selector 的实现逻辑与工作原理。原创 2025-07-13 08:15:00 · 786 阅读 · 0 评论 -
【Java源码阅读系列49】深度解读Java FileChannel 源码
Java NIO(New IO)通过 `FileChannel` 提供了更高效、更灵活的文件操作能力,支持内存映射、文件锁、零拷贝传输等高级特性。本文将结合 JDK 1.8 源码,从类设计、关键方法、设计模式及实战示例四个维度,深入解析 `FileChannel` 的实现逻辑与应用场景。原创 2025-07-12 08:45:00 · 2163 阅读 · 0 评论 -
【Java源码阅读系列48】深度解读Java ServerSocketChannel 源码
Java NIO(New IO)通过非阻塞 IO 模型和多路复用机制,显著提升了网络编程的性能。ServerSocketChannel 作为 NIO 中服务端监听 TCP 连接的核心类,是构建高性能服务端的关键组件。本文将结合 JDK 1.8 源码,从类设计、关键方法、设计模式及实战示例四个维度,深入解析其实现逻辑与应用场景。原创 2025-07-12 07:45:00 · 949 阅读 · 0 评论 -
【Java源码阅读系列47】深度解读Java SocketChannel 源码
Java NIO(New IO)作为 JDK 1.4 引入的高效 IO 模型,其核心能力之一是通过 SelectableChannel 实现非阻塞 IO 操作。SocketChannel 作为 NIO 中处理 TCP 连接的核心类,承担了面向流的套接字通道功能。本文将结合 SocketChannel 源码(JDK 1.8),从类结构、关键方法、设计模式等角度展开深度解读。原创 2025-07-11 09:45:00 · 977 阅读 · 0 评论 -
【Java源码阅读系列46】深度解读Java NIO SelectableChannel 源码
Java NIO(New Input/Output)的核心特性之一是多路复用(Multiplexing),通过 Selector 可以同时监控多个通道(Channel)的 I/O 事件,显著提升高并发场景下的性能。而 SelectableChannel 作为所有可被选择通道的抽象基类,是实现这一机制的关键桥梁。本文将结合源码,深入解析 SelectableChannel 的核心设计、关键方法及设计模式的应用。原创 2025-07-11 08:15:00 · 1225 阅读 · 0 评论 -
【Java源码阅读系列45】深度解读Java DirectByteBuffer 与 HeapByteBuffer 源码
Java NIO 中的 `ByteBuffer` 是处理字节数据的核心类,其两个重要子类 `HeapByteBuffer`(堆内存缓冲区)和 `DirectByteBuffer`(直接内存缓冲区)分别对应 JVM 堆内存和操作系统堆外内存的存储方式。本文将结合源码,深入解析两者的核心实现、关键方法及设计模式的应用,帮助开发者理解其差异与适用场景。原创 2025-07-10 09:15:00 · 1024 阅读 · 0 评论 -
【Java源码阅读系列44】深度解读Java NIO ByteBuffer 源码
Java NIO(New Input/Output)中的 ByteBuffer 是 Buffer 抽象类的具体子类,专门用于处理字节数据的高效读写。作为 NIO 的核心组件,ByteBuffer 支持堆内存(Heap)和直接内存(Direct)两种存储方式,广泛应用于网络通信、文件 IO 等场景。本文将结合源码,深入解析 ByteBuffer 的核心机制、关键方法及设计模式的应用。原创 2025-07-10 08:15:00 · 904 阅读 · 0 评论 -
【Java源码阅读系列43】Java NIO Buffer 源码深度解读
Java NIO(New Input/Output)中的 Buffer 类是所有缓冲区(如 ByteBuffer、IntBuffer 等)的抽象基类,是实现高效 IO 操作的核心组件。其源码通过状态变量管理和设计模式的巧妙结合,实现了对数据读写的灵活控制。本文将结合 Buffer 类的源码,深入解析其核心机制、关键方法及设计模式的应用。原创 2025-07-09 09:45:00 · 734 阅读 · 0 评论 -
【Java源码阅读系列42】深度解读Java ObjectOutputStream 源码
Java 的 ObjectOutputStream 是对象序列化的核心类,负责将内存中的 Java 对象转换为字节流,以便持久化存储或网络传输。其源码中不仅包含复杂的对象图遍历逻辑,还巧妙运用了多种设计模式,本文将结合源码深入解析其核心机制与设计思想。原创 2025-07-09 08:15:00 · 949 阅读 · 0 评论 -
【Java源码阅读系列41】深度解读Java ObjectInputStream 源码
Java 的 ObjectInputStream 是实现对象反序列化的核心类,负责将字节流转换为内存中的 Java 对象。其源码中不仅包含复杂的对象图解析逻辑,还巧妙运用了多种设计模式,本文将结合源码深入解析其核心机制与设计思想。原创 2025-07-08 09:15:00 · 904 阅读 · 0 评论 -
【Java源码阅读系列40】深度解读Java BufferedOutputStream 源码
Java 的 BufferedOutputStream 是字节输出流的缓冲装饰类,通过内存缓冲区暂存待写入的字节数据,减少底层 IO 操作次数,显著提升字节数据写入效率。本文基于 JDK 1.8 源码,从类结构、核心机制、关键方法到设计模式,全面解析其实现逻辑。原创 2025-07-08 08:15:00 · 1165 阅读 · 0 评论 -
【Java源码阅读系列39】深度解读Java BufferedInputStream 源码
Java 的 BufferedInputStream 是字节输入流的缓冲装饰类,通过内存缓冲区减少底层 IO 操作次数,显著提升字节数据读取效率。本文基于 JDK 1.8 源码,从类结构、核心机制、关键方法到设计模式,全面解析其实现逻辑。原创 2025-07-07 13:15:00 · 1098 阅读 · 0 评论 -
【Java源码阅读系列38】深度解读Java BufferedWriter 源码
Java 的 BufferedWriter 是字符输出流的缓冲装饰类,通过内存缓冲区暂存待写入的字符数据,减少底层 IO 操作次数,显著提升文本写入效率。本文基于 JDK 1.8 源码,从类结构、核心机制、关键方法到设计模式,全面解析其实现逻辑。原创 2025-07-07 09:15:00 · 994 阅读 · 0 评论 -
【Java源码阅读系列37】深度解读Java BufferedReader 源码
Java 的 BufferedReader 是字符输入流的缓冲装饰类,通过内置缓冲区减少底层 IO 操作次数,显著提升文本读取效率。本文基于 JDK 1.8 源码,从类结构、核心机制、关键方法到设计模式,全面解析其实现逻辑。原创 2025-07-06 09:45:00 · 1248 阅读 · 0 评论 -
【Java源码阅读系列36】深度解读Java FileOutputStream 源码
Java 的 FileOutputStream 是文件字节输出流的核心类,用于将原始字节数据写入文件。本文将结合 JDK 1.8 源码,从类结构、核心方法、资源管理和设计模式等维度,深入解析其实现逻辑。原创 2025-07-06 08:45:00 · 1107 阅读 · 0 评论 -
【Java源码阅读系列35】深度解读Java FileWriter 源码
FileWriter 是 Java I/O 体系中用于写入字符文件的便捷类,位于 java.io 包下。它通过继承 OutputStreamWriter,将文件字节流(FileOutputStream)适配为字符流(Writer)接口,简化了字符文件的写入操作。本文将结合源码,从类设计、核心功能、设计模式及使用场景等角度,深入解析 FileWriter 的设计思想。原创 2025-07-05 09:45:00 · 2291 阅读 · 0 评论 -
【Java源码阅读系列34】深度解读Java FileReader 源码
FileReader 是 Java I/O 体系中用于读取字符文件的便捷类,位于 java.io 包下。它通过继承 InputStreamReader,将文件字节流(FileInputStream)适配为字符流(Reader)接口,简化了字符文件的读取操作。本文将结合源码,从类设计、核心功能、设计模式及使用场景等角度,深入解析 FileReader 的设计思想。原创 2025-07-05 08:45:00 · 1400 阅读 · 0 评论 -
【Java源码阅读系列33】深度解读Java FilterReader 源码
FilterReader 是 Java I/O 体系中字符输入流的核心抽象类,位于 java.io 包下。它与 FilterWriter(字符输出流)、FilterOutputStream(字节输出流)共同构成 Java I/O 的「装饰器模式」基础框架,旨在通过动态组合扩展字符输入流的功能。本文将结合源码,从类结构、设计模式、核心方法实现等角度,深入解析 FilterReader 的设计思想。原创 2025-07-04 10:45:00 · 730 阅读 · 0 评论 -
【Java 源码阅读系列32】深度解读Java FilterWriter 源码
FilterWriter 是 Java I/O 体系中字符输出流的核心抽象类,位于 java.io 包下。它与字节流体系中的 FilterOutputStream 形成对称设计,共同构成 Java I/O「装饰器模式」的基础框架。本文将结合源码,从类结构、设计模式、核心方法实现等角度,深入解析 FilterWriter 的设计思想。原创 2025-07-04 08:15:00 · 983 阅读 · 0 评论 -
【Java 源码阅读系列31】深度解读Java FilterOutputStream 源码
FilterOutputStream 是 Java I/O 体系中一个关键的抽象类,位于 java.io 包下。它的核心作用是为所有「过滤输出流」提供基础实现,通过装饰器模式(Decorator Pattern)动态扩展输出流的功能。本文将从源码结构、设计模式、核心方法实现等角度,深入解析这个类的设计思想。原创 2025-07-03 09:15:00 · 4758 阅读 · 0 评论 -
【Java源码阅读系列30】深度解读Java FileInputStream 源码
FileInputStream 是 Java IO 体系中用于读取文件数据的核心类,它通过封装操作系统的文件操作,为上层提供了简单易用的字节流读取接口。本文将结合源码,深入解析其核心机制、关键方法,并提炼其中的设计模式思想。原创 2025-07-03 08:15:00 · 1028 阅读 · 0 评论 -
【Java源码阅读系列29】深度解读Java CopyOnWriteArrayList 源码
Java 的 CopyOnWriteArrayList 是 java.util.concurrent 包中提供的线程安全列表实现,其核心思想是“写时复制(Copy-On-Write)”。本文将结合源码,深入解析其核心机制、设计模式及适用场景。原创 2025-07-02 09:15:00 · 1869 阅读 · 0 评论 -
【Java源码阅读系列28】深度解读Java CompletableFuture 源码
Java 8 引入的 CompletableFuture 是并发编程中处理异步任务的核心工具,它通过实现 Future 和 CompletionStage 接口,提供了链式调用、任务组合、异常处理等强大功能。本文将结合源码,深入解析其核心机制、设计模式,并给出常见使用场景与代码示例。原创 2025-07-02 08:30:00 · 911 阅读 · 0 评论 -
【Java源码阅读系列27】深度解读Java ThreadPoolExecutor 源码
Java的ThreadPoolExecutor是并发编程中处理任务执行的核心类,广泛应用于异步任务调度、批量数据处理等场景。本文将从源码层面解析其核心机制,提炼设计模式,并结合实际场景给出使用示例。原创 2025-07-01 09:15:00 · 3523 阅读 · 0 评论 -
【Java源码阅读系列26】深度解读Java CyclicBarrier 源码
CyclicBarrier 是 Java 并发包(java.util.concurrent)中一个经典的同步工具类,由 Doug Lea 设计,用于协调多个线程在某个“屏障点”等待彼此,直到所有线程都到达后再继续执行。其核心特性是可重复使用(Cyclic),适用于需要多线程分阶段协作的场景。本文将从源码入手,结合设计模式分析其实现原理,并给出常见使用场景与代码示例。原创 2025-07-01 08:15:00 · 870 阅读 · 0 评论
分享