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

简介: 1996年1月,第一个JDK1.0诞生,从此Java开疆拓土,终成一个参与、制定新世界不可分割的伟大帝国。而远在1990年代初它的名字叫Oak,本想在电视机、电话、闹钟、烤面包机等家用电器的智能控制上大展拳手(这就是为啥Java支持跨平台了),但由于当时的市场需求没有预期的高,Sun公司于是就放弃了该计划。1992年 Joe Palrang创作出来了Java的吉祥物:Duke。随着互联网的发展,1995年5月 Oak正式改名为Java(看来起个好名字真的很重要),混的那叫一个风生水起。这一切还得靠1994年6月詹姆斯·高斯林等人的头脑风暴将技术应用于新兴的万维网的决定。

在这里插入图片描述

突然想看看JDK最原始的代码是什么样的,于是决定找个JDK1.0版本下载看看源码。现在整理如下:

1. 官方档案袋

https://www.oracle.com/java/technologies/downloads/archive/
点击进去你就可以发现所有的历史版本都在这里,真的是走心了,爱了爱了。
如果下载慢:
迅雷云链接:https://pan.xunlei.com/s/VMyqtO5LOIO7sKaNomq9jghMA1
提取码:bccr
在这里插入图片描述

2. 下载

这里我们以JDK1.1下载为例
在这里插入图片描述
然后往下翻,找到想要的版本(这里我们选择的是:jdk-1_1_8_16-solaris-i586.tar.Z
在这里插入图片描述
直接用解压软件可以看到:
\SUNWjvdev\reloc\usr\java1.1\src\
源码在这里,这时候我们就可以愉快的看代码了。
在这里插入图片描述
JDK1.1.8.16
源码大小4.98MB、修改时间2002-08-09 3:15
640 个文件,25 个文件夹
JDK1.6.45
源码大小69.7MB、修改时间2013-03-27 5:10
7174 个文件,482 个文件夹
JDK1.8.311
src源码大小81.9MB、修改时间2021-09-27 19:38
7746 个文件,485 个文件夹
javafx-src源码大小20.9 MB、修改时间2021-09-27 3:47
2513 个文件,192 个文件夹
JDK17.0.2
源码大小171 MB、修改时间2021-12-08 5:57
14197 个文件,1261 个文件夹

JDK版本 源码大小 修改时间 文件夹 文件
JDK1.1.8.16 4.98MB 2002-08-09 3:15 25 640
JDK1.6.45 69.7MB 2013-03-27 5:10 482 7174
JDK1.8.311 102.8MB 2021-09-27 19:38 677 10259
JDK17.0.2 171 MB 2021-12-08 5:57 1261 14197

可以看到源码(解压后的大小)和性能一直在更新,翻了几番了。
建议后期开发使用JDK17长期支持版,JDK7马上也快终止维护了,许多bug和补丁就不会修复了。
在这里插入图片描述

3. 文件夹介绍

文件 说明
SUNWjvdem Java代码demo
SUNWjvdev Java的源码
SUNWjvjit JIT
SUNWjvman Java的指令
SUNWjvrt rt包
README.i386 发行说明
ReleaseNotes.html 发行说明

让我们看看十年前的Java Hello World!原始代码:

/*
 * @(#)HelloWorldApp.java    1.2 01/12/12
 *
 * Copyright 2002 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

 /**
 * The HelloWorldApp class implements an application that
 * simply displays "Hello World!" to the standard output.
 */
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); //Display the string.
    }
}

可以看到注释还是比较随意的,但是代码格式已经成型了。
让我们在看看其他的demo:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以看到彩色界面,经典的awt布局格式,使用applet运行在支持java的浏览器中,可以说在那个年代满屏都是文字的浏览信息增加了一抹色彩,更是带来了震撼。可别小瞧了这丑陋的界面,这可是当时的主流。

1996年1月,第一个JDK1.0诞生,从此Java开疆拓土,终成一个参与、制定新世界不可分割的伟大帝国。而远在1990年代初它的名字叫Oak,本想在电视机、电话、闹钟、烤面包机等家用电器的智能控制上大展拳手(这就是为啥Java支持跨平台了),但由于当时的市场需求没有预期的高,Sun公司于是就放弃了该计划。1992年 Joe Palrang创作出来了Java的吉祥物:Duke。随着互联网的发展,1995年5月 Oak正式改名为Java(看来起个好名字真的很重要),混的那叫一个风生水起。这一切还得靠1994年6月詹姆斯·高斯林等人的头脑风暴将技术应用于新兴的万维网的决定。Java发展至今已经成为世界不可或缺的一部分,服务器、手机、App等应用都需要依赖Java语言,很难想象没有Java的世界将会是什么样?

到底Java世界发生了哪些改变?为何Java能长盛不衰?让我们一起从最初版本开始追溯Java本来的样子吧。

这算是源码学习的第一篇吧,越来越发现源码的重要性了,如果你还没开始阅读源码请整理好心情让我们愉快的出发吧。因为学习和工作原因可能更新不够及时,如果喜欢的小伙伴可以订阅本专栏,也可以私聊我催更哟~

修订记录

时间 内容
2022-03-23 22:55 初稿
2022-03-24 10:19 宣传图片添加、Duke吉祥物介绍添加
目录
相关文章
|
5月前
|
安全 前端开发 Java
JDK源码级别彻底剖析JVM类加载机制
JDK源码级别彻底剖析JVM类加载机制
|
5月前
|
Oracle Java 编译器
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
基本概念【入门、 发展简史、核心优势、各版本的含义、特性和优势、JVM、JRE 和 JDK 】(二)-全面详解(学习总结---从入门到深化)
82 1
|
2月前
|
算法 安全 Java
深入JDK源码:揭开ConcurrentHashMap底层结构的神秘面纱
【8月更文挑战第24天】`ConcurrentHashMap`是Java并发编程中不可或缺的线程安全哈希表实现。它通过精巧的锁机制和无锁算法显著提升了并发性能。本文首先介绍了早期版本中使用的“段”结构,每个段是一个带有独立锁的小型哈希表,能够减少线程间竞争并支持动态扩容以应对高并发场景。随后探讨了JDK 8的重大改进:取消段的概念,采用更细粒度的锁控制,并引入`Node`等内部类以及CAS操作,有效解决了哈希冲突并实现了高性能的并发访问。这些设计使得`ConcurrentHashMap`成为构建高效多线程应用的强大工具。
48 2
|
4月前
|
Java Spring
深入解析Spring源码,揭示JDK动态代理的工作原理。
深入解析Spring源码,揭示JDK动态代理的工作原理。
54 0
|
5月前
|
设计模式 Java
根据JDK源码Calendar来看工厂模式和建造者模式
根据JDK源码Calendar来看工厂模式和建造者模式
|
5月前
|
算法 Java 索引
【数据结构与算法】4、双向链表(学习 jdk 的 LinkedList 部分源码)
【数据结构与算法】4、双向链表(学习 jdk 的 LinkedList 部分源码)
64 0
|
5月前
|
Java Linux iOS开发
Spring5源码(27)-静态代理模式和JDK、CGLIB动态代理
Spring5源码(27)-静态代理模式和JDK、CGLIB动态代理
44 0
|
1月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
191 3
|
2月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
51 1
|
2月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
585 4