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 是什么.怎么用做简要的介绍. 一. ... 
随机推荐
- 玩家的numpertpry 对象 中 不仅仅要同步 君主武将的等级,阶级也要同步
			因为好多列表 中 需要 批量查询 玩家的等级 和阶级(用来显示玩家icon颜色用的),如果阶级 在numperty 中已同步 的话,就不用批量去查玩家武将列表了.同理如果其他属性也经常用的话也可以同步 ... 
- 当文件目录变得杂乱不堪怎么办,python帮你轻松搞定
			这几天和几个小伙伴,在一起合做一个ppt. 做ppt之前有原版的ppt,和一个word大纲,在制作过程中,又不断添加图片.视频等素材,最终,整个目录变得杂乱不堪(见下图-处理之前) 那我想,可不可以做 ... 
- OpenAL试水
			参考了https://wysaid.org/976.html. 这个博客给了一个EGE+OpenAL的demo和源代码.一开始没注意,博主也没有给EGE相关信息.会找不到EGE相关头文件,建议如果要二 ... 
- 阿里面试官让我实现一个线程安全并且可以设置过期时间的LRU缓存,我蒙了!
			目录 1. LRU 缓存介绍 2. ConcurrentLinkedQueue简单介绍 3. ReadWriteLock简单介绍 4.ScheduledExecutorService 简单介绍 5. ... 
- 必须先理解的RocketMQ入门手册,才能再次深入解读
			RocketMQ入门手册 RocketMQ是一个分布式.队列模型的开源消息中间件,前身是MetaQ,是阿里研发的一个队列模型的消息中间件,后开源给apache基金会成为了apache的顶级开源项目,具 ... 
- ViewDragHelper的点击事件处理
			在上一篇ViewDragHelper的介绍后,已经完成了自定义控件SwipeLayout的滑动,这一篇,我们来处理它的点击事件.之前提到过,它有两个子view,最开始显示的是surfaceLayout ... 
- df卡住的解决办法
			在使用网络存储时,如果网络存储出问题.比如使用NFS,网络中断,df -h会卡住 情形一 ctrl+c是能取消中断的,这种情况算是比较幸运.使用mount查看有哪些挂载点,将其卸载即可. 情形二 ct ... 
- Java 创建 Excel 数据透视表
			Excel 数据透视表具有强大的数据处理功能,能够使表格中的数据更加直观化.使用Excel 数据透视表,能方便用户快速的排序. 筛选各种数据,同时也能满足用户对不同数据汇总的需求.本文将介绍如何在Ja ... 
- search(8)- elastic4s-search-query模式
			上篇提过query模式除对记录的筛选之外还对符合条件的记录进行了评分,即与条件的相似匹配程度.我们把评分放在后面的博文中讨论,这篇我们只介绍query查询. 查询可以分为绝对值查询和全文查询:绝对值查 ... 
- Win10桌面美化
			捯饬了几个小时终于捯饬好了,没什么特效,就是看起来干净了许多. 用到的小软件: 链接:https://pan.baidu.com/s/1_PSTn0JZ22ZGiMDOdvdWEw提取码:329c 1 ... 
