用jdk1.8还是用jdk11

2020年年初,公司CTO要求我们采用最新版本jdk,甚至直接使用最新版kotlin。前两天(2020年12月),我把公司代码升级到了jdk11 LTS版本,但不是最新版jdk。

如果不搞rocketmq,不会发现什么问题,而且会感觉这是一个很好的改进,编码写法改进了,甚至性能提高了……

然后,一搞rocketmq,发现:不说jdk11,甚至jdk9都无法让最新版的rockemq起起来。

回想一下,这几年,各个大厂都推出了自己的jdk版本,华为有自己的jdk、阿里有自己的jdk,但殊路同归的是都用的是jdk1.8这个版本。要想用大厂优化过的jdk,或者要想用大厂出品的部分组件,你就得考虑你的jdk版本是否基于1.8的版本,比如:rocketmq。

我一直在想为什么要从jdk1.8升级到jdk11或者jdk14、15,难道jdk1.8不香吗?

个人认为:jdk1.8依旧很香。因为,jdk1.8已经经过了6年的补丁修复,而Oracle是注重口碑的大厂,它不会让jdk1.8在补丁修复中加入新的漏洞。而jdk12、13、14才经过两三年的维护,你知道jdk12、13、14或者jdk15中未修复的bug有多少吗?你知道jdk15中未发现的漏洞有多少吗?至少,我不知道。而,各个大厂更直接:推出了各自维护的jdk1.8的版本,并向openjdk贡献代码,这使得jdk1.8的漏洞更少,虚机也会更稳定。所以,我的建议是服务器环境依旧采用jdk1.8,而不是冒进采用最新版jdk。

仅此发表一下本人的见解,仅此而已,并无他意。

 

2020年12月12日下午补充:

下午,调研后发现,经过这1年,2020年各大厂已经基本都推出了jdk11的LTS版本,而且已经经过了半年以上的时间的检验,除了腾讯以外,各大厂基本都已开源各自的jdk11版本:

腾讯开源依旧Kona8,华为已有毕昇11,阿里已有Dragonwell 11,亚马逊已有Corretto11和15,Eclipse基金会已有AdoptOpenJDK11和15,Redhat也已有自己的jdk11版本。

目前来看,完全可以采用jdk11了。当然,我的想法还是LTS版本的jdk11,而不是最新版本的jdk。

而,rocketmq问题,如果不是源码开发,就只能暂时安装两个jdk(jdk8和jdk11)或者单独搭建一台装有jdk8的服务器或者搭建一个jdk8的docker镜像来解决了,这可以抛给运维人员了。

当然,作为小厂,我的想法依旧是只采用大厂用过没有问题或者已有解决方案的LTS版本,而不是最新版本。

最后,上jdk11(LTS)吧,同志们,大厂都有版本了,而且已经检验了一年了。

  • 29
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
JDK 11JDK 1.8 是 Java Development Kit(Java 开发工具包)的不同版本。以下是它们之间的一些区别: 1. 特性和功能:JDK 11JDK 的最新版本,提供了许多新的特性和功能。它包含了诸如局部变量类型推断、单文件执行等新的语言特性,以及性能改进、安全增强和新的 API 等方面的更新。而 JDK 1.8 是较旧的版本,尽管仍然可用,但不再获得官方的更新和支持。 2. LTS 版本JDK 11 被标记为 LTS(长期支持)版本,这意味着它将获得长期的技术支持和更新,以满足企业级应用程序的需求。而 JDK 1.8 不是 LTS 版本,因此不会获得相同程度的长期支持。 3. 性能和安全性:JDK 11 在性能和安全性方面进行了许多改进。它引入了一些新的 JIT 编译器技术、垃圾回收器算法优化等,以提性能。同时,JDK 11 还提供了一些新的安全功能和更新,增强应用程序的安全性。 4. 兼容性:尽管 JDK 11 提供了许多新特性,但在向后兼容性方面,它可能不如 JDK 1.8 宽松。某些旧代码可能需要进行适当的修改才能在 JDK 11 上运行。 总的来说,如果您正在开始一个新的 Java 项目或者希望使用最新的特性和功能,那么选择 JDK 11 是一个不错的选择。如果您在一个已经使用 JDK 1.8 的项目中工作,并且没有计划迁移到新版本,那么继续使用 JDK 1.8 也是可以的。 希望这个回答对您有帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值