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的帮助文档,算是比较权威全面的。接下来开始微观入手,进入四大主题的第一个主题 - 集合框架。
JDK基本库概述的更多相关文章
- 【转】Struts1.x系列教程(4):标签库概述与安装
转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...
- 【C】 06 - 标准库概述
任何程序都会有一些通用的功能需求,对这些需求的实现组成了库.它可以提高程序的复用性.健壮性和可移植性,这也是模块化设计的体现.C规范定义了一些通用接口库,这里只作概述性介绍,具体细节当然还是要查阅规范 ...
- 第十一章:random库概述
random库是使用随机数的python标准库 伪随机数:采用梅森旋转算法生成的伪随机序列中的元素 random库主要用于产生随机数 使用random库:import random random库的概 ...
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...
- C++标准库概述 [转]
C++标准库的所有头文件都没有扩展名. C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能.<cname>形式的标准头文件[<complex>例外]其内 ...
- Java基础总结01:JDK与JRE概述
1)JRE(Java Runtime Environment,Java运行时环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一 ...
- C++标准库概述
一.C++标准库的主要组件: 1.标准C库 2.I/O流技术(对标准输入输出设备称为标准I/O,对在外磁盘上文件的输入输出称为文件I/O,对内存中指定的字符串存储空间的输入输出称为串I/O) 3.st ...
- MySQL01-数据库概述
1.概述 1.1 什么是数据库? 用于存储和管理数据的仓库. 1.2 数据库的特点: 1. 持久化存储数据的.其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 - ...
- 【深入浅出 Yarn 架构与实现】2-1 Yarn 基础库概述
了解 Yarn 基础库是后面阅读 Yarn 源码的基础,本节对 Yarn 基础库做总体的介绍.并对其中使用的第三方库 Protocol Buffers 和 Avro 是什么.怎么用做简要的介绍. 一. ...
随机推荐
- 虚拟机VMware 安装后虚拟机网卡与主机网卡数据交换关系
安装好虚拟机以后,在网络连接里面可以看到多了两块网卡: 其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口,这些后面会详细介绍.在VMware Worksta ...
- stand up meeting 12/17/2015
part 组员 今日工作 工作耗时/h 明日计划 工作耗时/h UI 冯晓云 建立基本的pdf阅读器界面框架 4 开始实现界面框架 4 foxit PDF ...
- 形象地展示信号与系统中的一些细节和原理——卷积、复数、傅里叶变换、拉普拉斯变换、零极图唯一确定因果LTI系统
看懂本文需要读者具备一定的微积分基础.至少开始学信号与系统了本文主要讲解欧拉公式.傅里叶变换的频率轴的负半轴的意义.傅里叶变换的缺陷.为什么因果LTI系统可以被零极图几乎唯一确定等等容易被初学者忽略但 ...
- JSP中引用CSS样式文件却无法显示的问题解决方案
你也遇到过这种问题吗,CSS写好了,JSP写好了,在JSP中调用CSS文件,路径检查后也正确,但是无法显示渲染后的页面 原因:罪魁祸首就是过滤器响应数据的时候,响应头设置为了“text/html”,但 ...
- 分析 Nanocore
Nanocore是一个非常强大的木马控制系统,当Nanocore木马运行时,我们发现Windows Defender可以很好地识别威胁.本文的目的是分析Nanocore的传播方式,它是怎样感染Wind ...
- Nmap详细用法
探测主机存活 (1)-sP :进行ping扫描 (2) -sn: ping探测扫描主机, 不进行端口扫描 (3)-sA 发送ACK探测存活 端口扫描 (1) -sS :半开放扫描 (2) sT ...
- 2019-2020-1 20199329《Linux内核原理与分析》第十二周作业
<Linux内核原理与分析>第十二周作业 一.本周内容概述: 通过编程理解 Set-UID 的运行机制与安全问题 完成实验楼上的<SET-UID程序漏洞实验> 二.本周学习内容 ...
- 设计模式 - 迭代器模式详解及其在ArrayList中的应用
基本介绍 迭代器模式(Iterator Pattern)是 Java 中使用最多的一种模式,它可以顺序的访问容器中的元素,但不需要知道容器的内部细节 模式结构 Iterator(抽象迭代器):定义遍历 ...
- [SketchUp]-绘制自己的家
[SketchUp]-绘制自己的家 softsketchuphome 简介 最近已经完成了 毕业论文, 等待盲审的过程中, 将过去几年做的东西也都一一整理了, 硬盘中好几个不敢动的文件夹 也都可以删除 ...
- 谷歌提高Google Assistant中Voice Match的准确性
谷歌正在提高 Google Assistant 中 Voice Match 的准确性,使其变得更加完善.谷歌表示一旦用户在 Google Assistant 中启用 Voice Match 功能,那么 ...