前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中JDK8、JDK11、JDK17,该怎么选择?

Java中JDK8、JDK11、JDK17,该怎么选择?

作者头像
JanYork_小简
发布2022-04-11 14:54:10
68.3K0
发布2022-04-11 14:54:10
举报
文章被收录于专栏:小简技术栈

JDK的稳定版本

Java这个语言,1995 年发展至今,生态方面就不多说了,没有强大的生态,在科技快速发展的今天,是不可能被互联网企业与开发者认同的。

我们都知道,要使用Java语言,那么JDK就必不可少。

而经历了一代一代的变迁,JDK也慢慢更新换代,今年Oracle也是直接发布了JDK18,而到目前为止,我们的JDK存在了三个版本的长期支持版

分别是JDK8JDK11JDK17

而我们所说的长期支持版是什么呢?长期支持版本我们可以理解成一个项目会长期维护更新,也就是说,这三个版本是Oracle长期维护的JDK版本。而企业里面,就是需要长期支持版本,因为企业的项目需要稳定的开发环境。

如何选择

那JDK版本如此之多,我们改如何选择呢?毋庸置疑,我们肯定选择长期支持版本。

而我们长期支持版本中,JDK8是一个老熟人了,基本上Java大部分的项目都是基于JDK8环境。那既然这样,我们就来看看,JDK8的魅力。

JDK8

如果你在技术交流群或一群Java程序员中讨论JDK版本选择哪个,我相信,一般来说,他们都脱口而出:“JDK8”。

那么这个版本究竟为何受众面如此之广泛呢?

首先,回顾所有版本,JDK8刚出生时,他就冠名了一个相对完美的开发环境之称。因为相比以往的JDK7、JDK5这些,JDK8的生态很好,开发者使用起来也比之前的版本舒适,同时JDK8支持了几乎所有的开发功能需求,设计比较完善。

所以,JDK8也是迄今为止维护支持时间最长的版本,甚至比JDK17还长。

JDK11

科技在慢慢发展,在使用JDK8开发程序时,总存在一些弊端,也多了许许多多的需求,所以慢慢的,Oracle也发布了另一个长期支持更新维护版本——JDK11

相比JDK8,用的人肯定没那么多,包括到现在,JDK8仍然是主流。

首先,JDK11对比JDK8,除了有很多内部的升级(比如开销和时延更低的GC、TLS1.3加持等等)之外,对于初学使用者来说也有一些语言使用层面的进化。

变量类型推断

新版Java引入了一个全新的类型关键字var,用var来定义的变量不用写具体类型,编译器能根据=右边的实际赋值来自动推断出变量的类型。

具体的话,就自己去尝试吧。

官方HTTP Client加持

现在JDK官方就自带HTTP Client了,位于java.net.http包下,支持发送同步、异步的HTTP请求,这样一来,以前咱们常用的HTTP请求客户端诸如:OKHttp、HttpClient这种现在都可以退下了!

总结

除了这两个明显的变化,其实还有很多内部结构方法的增加。就不多说了。

实际是,我个人觉得,如果不是有对应需求,那还是老老实实的用JDK8吧。

因为,说实话,JDK11的生态不太行,参杂在JDK8与JDK17之间。

JDK17

JDK17也是长期支持版本,相比11一般来说更具优势,但是,我查阅了一些网络上其他大佬的评价。

如下:

Java 17的变化真不大,不及java9的模块化,java11和12并最终在15里全面普及的zgc和shennadoah gc,16里的record类等。各个版本的发布情况和变化详情,我之前有整理过,见下面链接:

下面是知乎一位水友的评价。

img
img

最主要的还有,Oracle 宣布 JDK 17 可以免费商用了。

其次就是JDK17的垃圾回收机制优化了。
img
img

除了这些自我生态方面的完善与增加,还有部分框架的依赖。

需要JDK17

Spring Framework 6 将采用 Java 17 和 Jakarta EE 9。

其次,还有Spring Boot 3.0.0 来啦!最小依赖 Java17!

img
img

知乎大佬直呼:

一直以来,Java8 都是 Java 社区心头的痛。因为它代表着以稳定性为主的企业管理层,与拥抱变化为主的底层码农层之间的、爱的魔力拉锯战。

不升!成为各大厂心照不宣的选择。

现在,这种平衡或将打破。因为 Java 届的霸主框架 SpringBoot,选择了最小支持的 Java lts 版本,就是最新的 Java17。

所以,作为一个开发者,还是不能脱离企业的需求哈。如果需求要用的SpringBoot3版本的话,那也必须要使用JDK17及以上版本了。

具体的发展还是让我们这些开发者拭目以待吧。目前选择8还是完全没问题的。

尾述

互联网的发展迅速啊!我们技术有时候可能难以追上时代的步伐,不过,我们的思维一定要在世界的前沿,比较我们本来就是创造未来的人啊!

什么!!!JDK18版本今年又发布了,是短期支持版本,6个月,9大特性之JEP 400:默认为UTF-8。

好家伙,我还是先摸清楚JDK8的底细吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 04 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • JDK的稳定版本
  • 如何选择
    • JDK8
      • JDK11
        • 变量类型推断
        • 官方HTTP Client加持
        • 总结
      • JDK17
      • 尾述
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档