浩哥带你学习JDK1.1源码——第2天

简介: JDK1.1源码阅读第二天,带你阅读源码文档那些事和源码的结构。

在这里插入图片描述

1. 阅读源码那点事

在上一篇的文章中,进入Java官网的档案袋里面,可以看到文档有两个下载链接:一个日本的版本和一份英文官方版本。
在这里插入图片描述

这让我非常奇怪,为啥单独出个日本的文档?为啥没有中国的呢?
于是我就搜了一下
互联网发展史
第一批接入互联网的国家有荷兰、丹麦、瑞典、英国。
在这里插入图片描述
我数了一下,大概是第二批日本就接入互联网了。
在这里插入图片描述
1994中国才正式接入互联网,而且当时日本的半导体也是如日中天,把美国给嫉妒的才慢慢打压下来了。(可以思考美国打压日本的手段是不是会在中国市场使用)
在这里插入图片描述
这就不难怪为啥Java官网要给日本写开发文档了,当时的日本软件行业也肯定很好。

聊完题外话我们再回正题,官网里面也有很多文档的

JDK1.6的文档:JavaSE6.0文档
在这里插入图片描述

JDK1.5的文档:JavaSE 5.0
在这里插入图片描述
在阅读源码的时候我们最好结合官方文档来一起阅读,先去看看官方文档的用法,会使用之后再去看源码我觉得会更好些。
我们将会结合JDK 1.1.8文档进行学习源码。
在这里插入图片描述

2. JDK 1.1.8源码结构

打开java文件夹下面的文件夹结构:
在这里插入图片描述
可以看到java根目录下有12个文件,具体的分布如下:
|文件夹名 | 存储大小 | 文件夹数 | 文件数 |
|--|--|--|--|
| applet | 22.6 KB | 0 | 4 |
| awt | 0.98 MB | 5 | 140 |
| beans | 123 KB | 0 | 23 |
| io | 481 KB | 0 | 4 |
| lang | 604 KB | 1 | 77 |
| math | 71.0 KB | 0 | 2 |
| net | 193 KB | 0 | 31 |
| rmi | 87.0 KB | 3 | 48 |
| security | 150 KB | 2 | 40 |
| sql | 189 KB | 0 | 17 |
| text | 1.64 MB | 1 | 143 |
| util | 487 KB | 1 | 44 |

可以看到代码量的分布,这时候呢我们先挑软的捏。
我们先来阅读学习math包下面的内容:
|文件名| 大小 | 总行数 | 源代码行数 | 注释行数 |空行数|
|--|--|--|--|--|--|
| BigDecimal | 23.5 KB |654 | 267 | 312 | 75 |
| BigInteger | 47.5 KB | 1457| 743 | 512 | 202 |

那么我们下期就先从BigDecimal开始入手讲起吧~
下期见!

修订记录
| 时间 | 内容 |
|--|--|
| 2022-03-25 15:17 | 初稿 |
| 2022-04-10 00:47 | 添加文档图片 |

目录
相关文章
|
安全 前端开发 Java
JDK源码级别彻底剖析JVM类加载机制
JDK源码级别彻底剖析JVM类加载机制
|
Oracle Java 编译器
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
208 1
|
算法 安全 Java
深入JDK源码:揭开ConcurrentHashMap底层结构的神秘面纱
【8月更文挑战第24天】`ConcurrentHashMap`是Java并发编程中不可或缺的线程安全哈希表实现。它通过精巧的锁机制和无锁算法显著提升了并发性能。本文首先介绍了早期版本中使用的“段”结构,每个段是一个带有独立锁的小型哈希表,能够减少线程间竞争并支持动态扩容以应对高并发场景。随后探讨了JDK 8的重大改进:取消段的概念,采用更细粒度的锁控制,并引入`Node`等内部类以及CAS操作,有效解决了哈希冲突并实现了高性能的并发访问。这些设计使得`ConcurrentHashMap`成为构建高效多线程应用的强大工具。
146 2
|
Java Spring
深入解析Spring源码,揭示JDK动态代理的工作原理。
深入解析Spring源码,揭示JDK动态代理的工作原理。
185 0
|
设计模式 Java
根据JDK源码Calendar来看工厂模式和建造者模式
根据JDK源码Calendar来看工厂模式和建造者模式
185 3
|
算法 Java 索引
【数据结构与算法】4、双向链表(学习 jdk 的 LinkedList 部分源码)
【数据结构与算法】4、双向链表(学习 jdk 的 LinkedList 部分源码)
149 0
|
Java Linux iOS开发
Spring5源码(27)-静态代理模式和JDK、CGLIB动态代理
Spring5源码(27)-静态代理模式和JDK、CGLIB动态代理
185 0
|
3月前
|
存储 Ubuntu 安全
在Ubuntu 16.04上安装openjdk-6/7/8-jdk的步骤
在整个安装过程中,你可能需要管理员权限,因此你可能要使用 `sudo` 来获取必要的权限。记得做完每一个步骤后,都要检查输出,以确保没有发生错误,并且每项操作都成功完成。如果在安装过程中遇到问题,查看 `/var/log/` 下的日志文件对于问题的解决可能是有帮助的。
214 21
|
3月前
|
IDE Ubuntu Java
在Ubuntu18.04安装兼容JDK 8的Eclipse集成开发环境的指南。
完成以上步骤后,您将在Ubuntu 18.04系统上成功安装并配置了Eclipse IDE,它将与JDK 8兼容,可以开始进行Java开发工作。如果遇到任何问题,请确保每一步骤都正确执行,并检查是否所有路径都与您的具体情况相匹配。
153 11
|
2月前
|
Ubuntu Java Android开发
在Ubuntu 18.04上安装与JDK 8兼容的Eclipse版本的步骤。
安装过程结束后,您就可以开始使用Eclipse来开发您的Java项目了,并且确保它与JDK 8兼容无误。这个过程涉及的是一个基本的安装流程,针对使用Java 8的用户,Eclipse的其他配置和插件安装根据个人开发环境和需求来定制。
218 0