jdk版本的选择(推荐1.8)
对java新手来说,选择jdk的版本也是个头晕的事情,今天小拿就给大家讲讲。内容包括
1.jdk从1.5到1.11,选哪个最好
2.jdk和jre的区别
一、jdk版本选择
jdk是java开发工具包,除了运行和编译相关的工具外,最重要的是封装了很多方法(function/method/api)。比如写一个输出“Hello world”的程序,直接调用System.out.println方法就好。
但是安装jdk的时候,有的人推荐1.6(也有叫6.0的),也有说用1.7和1.8的。竟然这么混乱,不如先官网看看是什么情况。
java下载官网直达:https://www.oracle.com/technetwork/java/javase/downloads/index.html
神马!真是不看不知道,一看吓一跳,jdk原来在今年的9月26日已经发布了了11.0(也就是1.11),从jdk1.5到1.11,到底选哪个版本?
问题1:JDK为什么频繁升级,从1.7到1.8、1.9、1.0、1.11?
这个问题新手可以了解下,java和C++都是高级语言,但是两者之间最大的区别就是C++底层直接调用操作系统运行硬件;而java是在操作系统之上加了一层JVM(java虚拟机),也就是运行上硬件之上的一个层级,所以一般来说C++性能更好。
早期的大型客户端游戏、网络和大数据算法、和硬件驱动都是用C++(或者C)语言来开发的。但是人无完人,语言也是这样,要不然就不会有像java、python、go等五花八门的语言。与操作系统的强锁定使C++在不同操作系统或者硬件平台运行时,都要对程序进行改进和调整。
而java因为底层有一套虚拟机的存在,号称各平台运行无障碍。现在智能电器、家居基本上跑的都是基于java语言开发的程序。
但是java说我也是运用这么广泛的语言,怎么能老戴着性能不如C++的帽子呢?所以随着技术的提高和数据结构算法的应用,通过不断的小版本(如1.8.1,1.8.2)和大版本(1.7、1.8等)的发布,jvm的性能也一直在升级,普通应用场景下,已经和C++性能相关不大。
另外,语法一直比较死板的java语言,也在吸收其它语言的精华,比如1.8引入了Lambda表达式,1.9引入var变量等。(虽然,java程序员大都不买账,一直用着原来死板的语法~~)
问题二:到底取选哪个
先给答案,选1.8或者1.9,1.8优先。
话要从Sun公司(也就是太阳)被Oracle收购说起,java原来是个开源项目,社区来维护。被收购后就带有商业和属性,Oracle公司也慢慢开始向java开刀和收费了,虽然现在jdk se 标准版还不收费,但是高级版已经向使用的企业要钱了。
有这个打算后的java语言走的路子就快了很多,比如10.0和11.0的发布就很快,一些新增的功能还需要市场来反馈是不是合理的,而且java开发依赖于很多框架(如spring),如果这些框架还没有完全支持新版本,可能就运行不起来。所以建议新版本(10.0和11.0),除非只想从语言层面去体验新功能,还是不要在实际业务开发中用。
1.5和1.6就太老了,连1.8,Oracle都发出2019年1月停止更新的通知了,我们就更不要用这些老古董了。
1.7、1.8、1.9都是成熟版本,原则上都可以选用。公司的商业项目jdk一般不轻易升级,1.9用的就比较少了,加上上面的配套框架升级速度的考虑,1.9版本第二推荐位。1.8和1.7的应用都比较广泛了,那自然选更新更高级的版本,所以,最推荐用1.8版本。
二、jdk和jre的区别
有同学在配置系统时,经常遇到jdk和jre的问题,但是也搞不清两者的区别。这里作为常识了解下,早期不知道也没什么问题。
其实从就两个词的字面就可以区分开,jdk(java development kit)是java的开发工具包,jre (java runtime environment) 是java程序的运行环境。
本地开发的时候也可以运行,但是作为网站或者项目运行时,代码都打个war包或者jar包了,跟开发相关的工具和包就没有用了。
也就是说jre是jdk的一个子集。
下图是官方1.8的文档说明:https://docs.oracle.com/javase/8/docs/
运行时使用jre而不使用jdk,一方面是为了减少硬盘空间的使用,另一方面也有一定的安全考虑,防止jdk里的一些执行命令被恶意篡改。当然,现在大部分公司运行时已经不那么区分jdk和jre了,直接在服务器上跑JDK。
学习 Java,使用哪个版本最好
前言
工欲善其事,必先利其器。我们要学习和使用 Java 语言,就需要搭建好 Java 的开发环境,边学习知识,边实践编码,可以更好的体会 Java 这门语言的精髓。
什么是 JDK
看过 学习 Java 语言,你必须知道的 Java 简史 的同学应该知道,Java 在诞生时,就为我们配备了 Java 的运行环境和开发工具,而这些,都打包在了 JDK 里面。
JDK 全称 Java Development ToolKit,直译一下就是 Java 语言开发工具包。
JDK 包含了 开发者工具比如 javac 用来编译 java 源码,jar 用来打包,还有一系列其他工具。此外,还包含了 JRE(Java Runtime Environment),也就是 Java 应用程序的运行环境,它除了运行程序的 java 指令外,还有类库以及执行 Java 应用程序的 JVM(Java 虚拟机)。
有了它,我们不仅可以用 Java 编程语言来构建应用程序、Applet 和组件,还能学习 Java 的源码,感受它的设计理念。
但 Java 更新换代好多版,JDK 同样推陈出新,JDK 那么多版本,哪个版本更适合初学者呢?
选择 JDK 的标准
在我看来,任何一项技术的使用,必须要考虑两个点,一个是稳定性,另一个是普遍性。
稳定性代表着这项技术经过了测试和实践的检验,能修的 bug 都修了,基本不会有什么大的问题。
普遍性代表着这项技术被广泛使用甚至形成良好的社区交流氛围,这就意味着你可能踩的坑基本都被别人踩过了,即便遇到什么问题,也可以很快在网上找到答案。
如果基于这两个技术选型要素,作为 JDK 版本的选择标准,那我觉得现阶段的初学者更适合使用 JDK 8 来学习。
为什么选择 JDK 8
JDK 8 是 Oracle 公司在 2014 年 3 月推出的里程碑式的一个版本,同时也是长期支持的版本。
几年里,该版本经过多次更新,已经非常稳定,目前被广泛应用于各大互联网企业中,而且该版本新增的函数式编程能力以及很多全新的语言特性,非常受开发者们的欢迎。
也就是说,如果你现在找工作,公司用的 JDK 版本大概率是 8。那如果你基于 8 来学习,工作时再搞 Java 就没有学习成本了。
我是蜗牛,大厂程序员,专注技术原创和个人成长,正在互联网上摸爬滚打。欢迎关注我,和蜗牛一起成长,我们一起牛~下期见!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。