看脚下,不断行,莫存顺逆。

剖析java的哪些源码

目前主要是java基本库的一些源码的分析,jvm工具的使用等等,后续可能还会结合hotspot源码来分析jvm原理,当然,这是一个比较高级的主题,根据时间和进度来定。

jdk版本

目前选定的是生产环境下使用最多的jdk1.8,具体版本号为 jdk1.8.0_181。

java的基本库包含哪些内容

根据jdk1.8的官方文档,主要分为两大类:

  1. Lang和util的包 - 提供基本的Object和Class类,原始类型的包装器类,基本的数学类等。
  2. 其他包 - 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的官方文档做进一步了解。

源码研习计划

  1. 四大主题依次为集合、并发、IO和网络;优先级最高。
  2. 其他主题,分别为反射、对象引用机制,对象序列化技术、JMX以及安全;优先级较高。

总结

宏观统筹,本篇文章做到了宏观统筹,参考了jdk1.8的帮助文档,算是比较权威全面的。接下来开始微观入手,进入四大主题的第一个主题 - 集合框架。

JDK基本库概述的更多相关文章

  1. 【转】Struts1.x系列教程(4):标签库概述与安装

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

  2. 【C】 06 - 标准库概述

    任何程序都会有一些通用的功能需求,对这些需求的实现组成了库.它可以提高程序的复用性.健壮性和可移植性,这也是模块化设计的体现.C规范定义了一些通用接口库,这里只作概述性介绍,具体细节当然还是要查阅规范 ...

  3. 第十一章:random库概述

    random库是使用随机数的python标准库 伪随机数:采用梅森旋转算法生成的伪随机序列中的元素 random库主要用于产生随机数 使用random库:import random random库的概 ...

  4. [C/C++] C/C++延伸学习系列之STL及Boost库概述

    想要彻底搞懂C++是很难的,或许是不太现实的.但是不积硅步,无以至千里,所以抽时间来坚持学习一点,总结一点,多多锻炼几次,相信总有一天我们会变得"了解"C++. 1. C++标准库 ...

  5. C++标准库概述 [转]

    C++标准库的所有头文件都没有扩展名. C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能.<cname>形式的标准头文件[<complex>例外]其内 ...

  6. Java基础总结01:JDK与JRE概述

    1)JRE(Java Runtime Environment,Java运行时环境) 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一 ...

  7. C++标准库概述

    一.C++标准库的主要组件: 1.标准C库 2.I/O流技术(对标准输入输出设备称为标准I/O,对在外磁盘上文件的输入输出称为文件I/O,对内存中指定的字符串存储空间的输入输出称为串I/O) 3.st ...

  8. MySQL01-数据库概述

    1.概述 1.1 什么是数据库? 用于存储和管理数据的仓库. 1.2 数据库的特点: 1. 持久化存储数据的.其实数据库就是一个文件系统 2. 方便存储和管理数据 3. 使用了统一的方式操作数据库 - ...

  9. 【深入浅出 Yarn 架构与实现】2-1 Yarn 基础库概述

    了解 Yarn 基础库是后面阅读 Yarn 源码的基础,本节对 Yarn 基础库做总体的介绍.并对其中使用的第三方库 Protocol Buffers 和 Avro 是什么.怎么用做简要的介绍. 一. ...

随机推荐

  1. x聊之后,又一波新的诈骗套路

    前些天刚看到,x聊勒索诈骗套路,骗子的套路可以说是花样百出,这不又一网友深受其害. 事情经过是这样的 某被骗网友由于工资微薄一直想找副业增加收入,关注和加了很多群. 注意群里都是有偏亮头像的”小姐姐” ...

  2. stand up meeting 12-4

    今日进步: 1.国庆答题界面和结果界面的连接完成,并能显示GetRankData API返回结果和错误题目的单词信息. 2.天赋: 完成了整个  单词挑战需要碰到的"Storage" ...

  3. Bi-shoe and Phi-shoe LightOJ - 1370

    欧拉函数. 欧拉函数打表模板: #define maxn 3000010 int p[maxn]; void oula(){ int i,j; ; i<=maxn; i++) p[i]=i; ; ...

  4. el-tab-pane label的文字内容怎样设间距

    el-tab-pane label的文字内容怎样设间距 问题描述: 在使用element-ui的el-tab-pane做标签页时,label属性的位置与样式不能通过style样式直接解决 百度后几乎没 ...

  5. 微信小程序标签常见知识点归纳整理

    1. <image src='/images/logo.png' mode='widthFix'></image> mode 属性表示图片随着指定的宽度自动拉伸以显示原图的正确 ...

  6. form表单里的button调用js函数

    近来发现一个特别奇怪的问题:在form表单里,button的onclick事件无法调用js函数.代码如下(这段代码放在form标签里): dropUpdateAddress调用的js函数为: 这个时候 ...

  7. python之实现图像的手绘效果

    https://blog.csdn.net/riba2534/article/details/74152285 原图: b: c: d: 最终图:

  8. shell脚本之六:shell脚本的条件测试与比较

    六.shell脚本的条件测试与比较 (一)条件表达式的常见语法 1.条件表达式6种写法(if,while) 语法1:test<测试表达式> 语法2:[ <测试表达式>] #中括 ...

  9. 9个小技巧让你的 if else看起来更优雅

    if else 是我们写代码时,使用频率最高的关键词之一,然而有时过多的 if else 会让我们感到脑壳疼,例如下面这个伪代码: 是不是很奔溃?虽然他是伪代码,并且看起来也很夸张,但在现实中,当我们 ...

  10. swoole学习--图文直播和聊天室

    其实这个也没有什么好值得记录的,但是前面都记下来了,我也顺便说说吧: 1.为了方便,最好把http服务声明为超全局变量. 2.在一些地方里面,你声明的http超全局变量是用不了的,你只能用他自己内置的 ...