第一章 JavaSE发展史及OpenJDK与OracleJDK区别

embedded/2024/11/19 22:04:50/

目录

一、Java SE的发展历史

1.1. Java版本年历

二、Open JDK 和 Oracle JDK

2.1. Open JDK来源

2.2. Open JDK 和 Oracle JDK的关系

三、小结

Open JDK 官网 http://openjdk.java.net/

一、Java SE的发展历史

Sun公司在1991年成立了一个称为绿色计划( Green Project )的项目,由James Gosling(高斯林)博士领导,绿色计划的目的是开发一种能够在各种消费性电子产品(机顶盒、冰箱、收音机等)上运行的程序架构。这个项目的产品就是 Java语言的前身: Oak(橡树)Oak当时在消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位。

1.1. Java版本年历

JDK Beta - 1995

JDK 1.0 - 19961(真正第一个稳定的版本JDK 1.0.2,被称作 Java 1 )

JDK 1.1 - 19972月,增加了JDBC和RMI等特性。

J2SE 1.2 - 1998年12月

J2ME(Java 2 Micro EditionJava 2平台的微型版),应用于移动、无线及有限资源的环境。

J2SEJava 2 Standard EditionJava 2平台的标准版),应用于桌面环境。

J2EEJava 2 Enterprise EditionJava 2平台的企业版),应用于基于Java的应用服务器。

J2SE 1.3 - 20005月,引入了Java HotSpot Virtual Machine,改进了类库,例如Swing和集合框架。

J2SE 1.4 - 20022

J2SE 5.0 - 20049月,提供了泛型支持、注解、自动装箱和 enums 等特性。

Java SE 6 - 200612月,提升了运行速度,增加了编译器的优化等。

Java SE 7 - 20117月,增加了switch语句的枚举支持、try-with-resources语句、支持二进制字面量等。

Java SE 8(LTS) - 2014年3月,增加了函数式编程特性,如Lambda表达式。

Java SE 9 - 20179月,模块化系统、改进的JVM和性能提升、接口的私有方法等。

Java SE 1018.3 - 20183月,改进JIT编译器、局部变量类型推断、线程本地管道等。

Java SE 11(18.9 LTS) - 2018年9月,改进ZGC、移除了CMS垃圾回收器等。

Java SE 1219.3 - 20193月,增加了对Vaadin Flow的支持、Context-aware type data levels等。

Java SE 1319.9) - 20199月,Switch表达式、文本块、edn 支持等。

Java 14.0 (Loom) - 2020年3月,预览了虚拟线程,引入了模式匹配等新特性。

Java 15.0 (Malica) - 2020年9月,ZGC到GPL转换、Unix域套接字、EdDSA支持等。

Java 16.0 (Mondain) - 2021年3月,Vector API、NullPointerExceptions在switch表达式中、G1的并行完全垃圾回收等。

Java 17.0 (Rhombus) - 2021年9月,Sealed classes、Text Blocks等新特性。

我们可以看到Java SE的主要版本大约每两年发布一次,直到Java SE 6Java SE 7开始花了五年时间,之后又花了三 年时间到达Java SE 8

二、Open JDK Oracle JDK

2.1. Open JDK来源

Java Sun 公司发明,Open JDKSun2006年末把Java开源而形成的项目。也就是说Open JDKJava SE平台版的开源和免费实现,它由 SUN Java 社区提供支持,2009 Oracle 收购了 Sun 公司,自此 Java 的维护方之一的SUN 也变成了Oracle

2.2. Open JDK Oracle JDK的关系

大多数 JDK 都是在 Open JDK 的基础上进一步编写实现的,比如 IBM J9, Oracle JDK Azul Zulu, Azul Zing

Oracle JDK完全由 Oracle 公司开发,Oracle JDK是基于Open JDK源代码的商业版本。此外,它包含闭源组件。

Oracle JDK根据二进制代码许可协议获得许可,在没有商业许可的情况下,在20191月之后发布的Oracle Java SE 8 的公开更新将无法用于商业或生产用途。但是 Open JDK是完全开源的,可以自由使用。

在Open JDK官网中,JDK Enhancement Proposals代表了JDK增强建议,通俗的讲JEP就是JDK的新特性。日后在JDK新特性发布后,我们都可以在此处查看。

三、小结

Oracle JDK是基于Open JDK源代码的商业版本。我们要学习Java新技术可以去Open JDK 官网学习。


http://www.ppmy.cn/embedded/138877.html

相关文章

React(一)

文章目录 项目地址一、创建第一个react项目二、JSX语法2.1 生成列表2.2 大括号识别JS的表达式2.3 列表循环array2.4 条件判断以及假值显示2.5 复杂条件渲染2.6 事件监听和绑定2.7 使用Fregments返回多个根标签2.8 多条件渲染2.9 导出子组件 三、组件3.1 设置组件3.2 props给子组…

网络安全检测技术

一,网络安全漏洞 安全威胁是指所有能够对计算机网络信息系统的网络服务和网络信息的机密性,可用性和完整性产生阻碍,破坏或中断的各种因素。安全威胁可分为人为安全威胁和非人为安全威胁两大类。 1,网络安全漏洞威胁 漏洞分析的…

web-02

回顾 full stack web前端 结构(html) 样式(css) 动作/交互(js) html html常用标签 扩展标签 列表 ul/ol u–un – 无序的 o-order --有顺序的 <ol> 你最喜欢的游戏是什么&#xff1f;<li>bar sleep</li><li>who knows</li> </ol>布…

从swagger直接转 vue的api

从 Swagger 直接生成 Vue.js API 调用的代码是一个非常常见的需求&#xff0c;特别是在前后端分离的项目中&#xff0c;使用 Swagger 文档自动生成 API 调用代码可以提高开发效率。虽然 Swagger 本身并没有直接生成 Vue.js 的代码&#xff0c;但你可以通过一些工具和方法来实现…

Enterprise Architect 16 下载、安装与无限30天操作

文章目录 Enterprise Architect 16 简介&#xff08;一&#xff09;支持多种建模语言和标准&#xff08;二&#xff09;强大的版本控制、协作和文档管理功能&#xff08;三&#xff09;增强的技术和用户体验&#xff08;四&#xff09;高级功能和扩展性 一&#xff0c;下载软件…

论文的科技查新报告是什么?有什么用途?

一、论文的科技查新报告是什么 论文的科技查新与一般科技查新有一些不同之处。 在论文的科技查新中&#xff0c;主要是针对特定的研究课题进行查新&#xff0c;以获取与该课题相关的最新研究成果和文献。 与一般科技查新相比&#xff0c;论文的科技查新更加注重对学术界的研究…

【数据分享】中国食品工业年鉴(1984-2023) PDF

数据介绍 一、《中国食品工业年鉴》(以下简称《年鉴》)是一部全面反映上一年度全国食品工业发展情况纪年性、资料性、权威大型年刊。《年鉴(2023)》系统收录了全国食品行业各专业和 31个省(自治区、直辖市)2022年食品工业经济运行情况的综述&#xff0c;《年鉴》是由中国食品工…

【Pytorch】torch.nn.functional模块中的非线性激活函数

在使用torch.nn.functional模块时&#xff0c;需要导入包&#xff1a; from torch.nn import functional 以下是常见激活函数的介绍以及对应的代码示例&#xff1a; tanh (双曲正切) 输出范围&#xff1a;(-1, 1) 特点&#xff1a;中心对称&#xff0c;适合处理归一化后的数据…