设为首页
收藏本站
切换到窄版
登录
立即注册
找回密码
搜索
搜索
本版
帖子
用户
快捷导航
论坛
BBS
C语言
C++
NET
JAVA
PHP
易语言
数据库
IE盒子
»
论坛
›
IE盒子
›
JAVA
›
Java小知识:JDK 版本这么多,该如何选择? ...
返回列表
发帖
查看:
125
|
回复:
1
Java小知识:JDK 版本这么多,该如何选择?
[复制链接]
一眼望见你
一眼望见你
当前离线
积分
26
7
主题
12
帖子
26
积分
新手上路
新手上路, 积分 26, 距离下一级还需 24 积分
新手上路, 积分 26, 距离下一级还需 24 积分
积分
26
发消息
发表于 2023-1-4 12:14:52
|
显示全部楼层
|
阅读模式
你好,我是猿java。
今天分享的内容是:如何在众多的 JDK版本中选择最合适你的版本。
背景
Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发,下图为Java的 logo:
img.png
鉴于 Java的快速发展,目前 JDK的版本比较多,今天就一起来回顾一下 Java的发展历程,以及对于JDK众多版本,我们在生产环境上该如何选择。
Java的诞生
1995年,Sun公司发布了 JDK Beta版本,这是 Java的第一个版本,标志着一场面向对象语言革命的到来。
Sun公司,简称 SUN,名字是由斯坦福大学网络(Stanford University Network)缩写而来,该公司主要产品包括工作站、服务器和UNIX操作系统等,公司于 1986年在美国纳斯达克上市,后于2009年被 Oracle(甲骨文)公司收购,结束长达27年的公司历史。
另外,提到 Java语言,就不得不提到 Java的创造者,被公认为"Java之父"的James Gosling(詹姆斯·高斯林),1990年,James Gosling 开发了 Java语言的雏形,最初被命名为Oak,后来在 Sun公司的推动下,改名为 Java。下图为 James Gosling的照片及简介:
img.png
1955 年 5 月 19 日, James Gosling 出生于加拿大阿尔伯塔省卡尔加里;
1977 年,获得加拿大卡尔加里大学计算机科学学士学位;
1983 年,获得了美国卡内基梅隆大学计算机科学博士学位;毕业后到 IBM工作,设计 IBM第一代工作站 NeWS系统,但不受重视,后来转至 Sun公司;
1990 年,James Gosling 与Patrick Naughton、Mike Sheridan等人合作「绿色计划」,后来发展一套语言叫做「Oak」,后改名为 Java;
1994 年底,James Gosling在矽谷召开的「技术、教育和设计大会」上展示Java程式;
2009 年 4月 20 日,Oracle 公司以每股9.50美元,总额 74亿美金收购 Sun公司;
2010 年 4月,James Gosling从 Oracle公司离职;
2011 年 3 月 29 日,高斯林在个人博客上宣布将加入Google;
2011 年 8 月 30 日,加入Google数月之后的高斯林就在个人博客上宣布离开Google,加盟一家从事海洋机械人研究的创业公司Liquid Robotics,担任首席软件架构师;
2011 年 5 月,Scala 公司Typesafe Inc.,高斯林被列为公司顾问;
从 1995年 到 2009年,Java在 Sun公司渡过了启蒙和快速发展的14年,Java 也成为了全球最受欢迎的编程语言之一。
Java的转折
2009 年 4月 20 日,Oracle 公司以每股9.50美元,总额 74亿美金收购 Sun公司,从此 Sun公司退出历史舞台,Java 也正式进入 Oracle的怀抱,在 Oracle公司,Java迎来了自己的高光时刻。下图为 Java在Oracle公司发布的版本:
img.png
版本及功能
下图总结了 JDK从第一个发布版本到现在所有的版本信息:
img.png
从上图可以看出,最开始 Sun公司是以 JDK(Java SE Development Kits,Java 开发包)命名,从1.2 版本起,修改成以 J2SE(Java 2 Platform, Standard Edition)命名,从 Java SE 6后 Java不再带有"2" 这个号码,后面的版本全部以 Java SE + 数字版本 命名。
尽管在 Java发展历史上出现过好多名词,比如 J2SE,J2ME,J2EE,但还是可以笼统的认为:Java = Java SE = JDK。
针对几个长期维护版本,列举了其重要功能升级:
JDK 8
Lambda 和 函数式接口
方法推导
接口默认方法和静态方法
重复注解
类型注解
类型推断
Optional
Stream
日期时间 API
Base64 支持
并行数组 ParallelSort
JDK 11
基于嵌套的访问控制
标准 HTTP Client 升级
Epsilon:低开销垃圾回收器
简化启动单个源代码文件的方法
用于 Lambda 参数的局部变量语法
低开销的 Heap Profiling
支持 TLS 1.3 协议
ZGC:可伸缩低延迟垃圾收集器
飞行记录器
动态类文件常量
JDK 17
语言特性增强
密封的类和接口(正式版)
工具库的更新
JEP 306:恢复始终严格的浮点语义
JEP 356:增强的伪随机数生成器
JEP 382:新的macOS渲染管道
新的平台支持
JEP 391:支持macOS AArch64
旧功能的删除和弃用
JEP 398:弃用 Applet API
JEP 407:删除 RMI 激活
JEP 410:删除实验性 AOT 和 JIT 编译器
JEP 411:弃用安全管理器以进行删除
新功能的预览和孵化API
JEP 406:新增switch模式匹配(预览版)
JEP 412:外部函数和内存api (第一轮孵化)
JEP 414:Vector API(第二轮孵化)
JEP 389:外部链接器 API(孵化器)
JEP 393:外部存储器访问 API(第三次孵化)
备注: LTS: long time support,长时间支持
如何选择版本
通过上面的介绍可以看出,JDK 8,JDK 11,JDK 17 是 3个长期维护的版本,但因为 JDK 17是 2021年发布的 GA版本,所以,生产上尽量选择 JDK 8 或者 JDK 11。
在 JDK版本的选择上,尽量选择长期维护的版本,不要使用最新版本的。因为新版本的 JDK,新功能没有经过生产环境的验证,如果想成为第一个吃螃蟹的人,一定要三思能否 hold得住。
回复
使用道具
举报
坦然而行
坦然而行
当前离线
积分
30
2
主题
15
帖子
30
积分
新手上路
新手上路, 积分 30, 距离下一级还需 20 积分
新手上路, 积分 30, 距离下一级还需 20 积分
积分
30
发消息
发表于 2025-5-16 20:28:49
|
显示全部楼层
好帖必须得顶起
回复
使用道具
举报
返回列表
发帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表