JDK基本库概述
看脚下,不断行,莫存顺逆。
剖析java的哪些源码
目前主要是java基本库的一些源码的分析,jvm工具的使用等等,后续可能还会结合hotspot源码来分析jvm原理,当然,这是一个比较高级的主题,根据时间和进度来定。
jdk版本
目前选定的是生产环境下使用最多的jdk1.8,具体版本号为 jdk1.8.0_181。
java的基本库包含哪些内容
根据jdk1.8的官方文档,主要分为两大类:
- Lang和util的包 - 提供基本的Object和Class类,原始类型的包装器类,基本的数学类等。
- 其他包 - IO,网络以及对象系列化等等等等。
Lang和Util库
具体包含如下:
库 | 描述 | 进一步了解 |
---|---|---|
Math | 浮点数计算以及任意精度计算 | Math |
监控与管理 | 对Java平台的全面监视和管理支持,包括Java虚拟机的监视和管理API,日志记录工具的监视和管理API,jconsole和其他监视实用程序,开箱即用的监视和管理,Java管理扩展(JMX)和Oracle的Platform Extension。 | 监控与管理 |
引用对象 | 引用对象支持与垃圾收集器的有限程度的交互。程序可以使用引用对象来维护对某个其他对象的引用,以使收集器仍可以回收后者的对象。在收集器确定给定对象的可到达性已更改之后的某个时间,程序也可能会收到通知。因此,引用对象可用于构建简单的缓存以及在内存不足时刷新的缓存,实现不阻止其键(或值)被回收的映射以及更灵活地安排事前清理操作Java终结机制所无法实现的方式。 | 对象引用 |
反射 | 反射使Java代码能够发现有关已加载类的字段,方法和构造函数的信息,并在安全性限制内使用反射的字段,方法和构造函数对对象的基础对象进行操作。 API容纳需要访问目标对象的公共成员(基于其运行时类)或给定类声明的成员的应用程序。程序可以禁止默认的反射访问控制。 | 反射 |
集合框架 | 集合是代表一组对象的对象。集合框架是用于表示集合的统一体系结构,使它们可以独立于表示的细节进行操作。它减少了编程工作,同时提高了性能。它允许无关API之间的互操作性,减少了设计和学习新API的工作量,并促进了软件重用。 | 集合框架 |
并发工具集 | 并发实用程序包提供了高性能线程实用程序(例如线程池和阻塞队列)的强大,可扩展的框架。该软件包使程序员无需手工制作这些实用程序,这与Collections Framework用于数据结构的方式几乎相同。此外,这些软件包为高级并发编程提供了低级原语。 | 并发工具集 |
日志 | 日志API通过生成适合最终用户,系统管理员,现场服务工程师和软件开发团队进行分析的日志报告,促进了客户站点的软件服务和维护。日志API捕获信息,例如安全失败,配置错误,性能瓶颈和/或应用程序或平台中的错误。 | 日志 |
首选项 | 首选项API为应用程序提供了一种存储和检索用户及系统首选项和配置数据的方式。数据永久存储在与实现相关的后备存储中。偏好节点有两棵单独的树,一棵用于用户偏好,一棵用于系统偏好。 | 首选项 |
其他包
具体包含内容如下:
库 | 描述 | 进一步了解 |
---|---|---|
I/O | java.io和java.nio软件包提供了一组丰富的API,用于管理应用程序的I / O。该功能包括文件和设备I / O,对象序列化,缓冲区管理以及字符集支持。此外,API支持可伸缩服务器的功能,包括多路复用,非阻塞I / O,内存映射和文件锁定。 | I/O |
对象系列化 | 对象序列化通过支持对象扩展了核心Java输入/输出类。对象序列化支持对象的编码以及从对象可访问的对象到字节流的编码。它支持从流中补充重建对象图。序列化用于轻量级的持久性,并用于通过套接字或远程方法调用(RMI)进行通信。 | 对象序列化 |
网络 | 提供用于网络功能的类,包括地址,用于使用URL和URI的类,用于连接到服务器的套接字类,网络安全功能等。 | 网络 |
安全 | 用于与安全相关的功能的API,例如可配置的访问控制,数字签名,身份验证和授权,加密,安全的Internet通信等。 | 安全 |
Java管理扩展(JMX) | Java管理扩展(JMX)API是用于管理和监视资源(例如应用程序,设备,服务和Java虚拟机)的标准API。典型用途包括咨询和更改应用程序配置,累积有关应用程序行为的统计信息以及通知状态更改和错误情况。 JMX API包括远程访问,因此,出于这些目的,远程管理程序可以与正在运行的应用程序进行交互。 | JMX |
此外,还包括很多,比如国际化、JNI、xml、扩展机制、Endorsed Standards Override Mechanism等等等等。
最后,注意除了基本库外,还定义了集成库,比如常用的jdbc,RMI,脚本化技术、JNDI技术等;以及用户接口库,比如AWT,声音,图像,打印服务等等等等,具体可以参照jdk1.8的官方文档做进一步了解。
源码研习计划
- 四大主题依次为集合、并发、IO和网络;优先级最高。
- 其他主题,分别为反射、对象引用机制,对象序列化技术、JMX以及安全;优先级较高。
总结
宏观统筹,本篇文章做到了宏观统筹,参考了jdk1.8的帮助文档,算是比较权威全面的。接下来开始微观入手,进入四大主题的第一个主题 - 集合框架。