java不同的版本间的区别主要在新增功能上。但Java向后兼容,这意味着,除了少数例外,Java 5或Java 8的程序可以在Java 8-13虚拟机上运行。当然,反过来则不成立。若程序用到Java 13一些特性,Java 8 JVM不具备这些功能,显然无法工作。
java不同的版本间的区别主要在新增功能上。但Java向后兼容,这意味着,除了少数例外,Java 5或Java 8的程序可以在Java 8-13虚拟机上运行。当然,反过来则不成立。若程序用到Java 13一些特性,Java 8 JVM不具备这些功能,显然无法工作。
这意味着两点:
Java各个版本都有哪些新功能?
一起了解Java 8-13新特性。
按照经验:Java版本越早发行周期越长(比如3到5年,一直到Java 8),这意味着每个发行版包含更多新功能。
6个月的发布周期意味着每个版本包含的新功能要少得多,因此可以快速掌握Java 9-13的新功能。
JRE和JDK有什么区别?
目前为止,一直讨论的是“Java”。Java到底是什么?
首先需要区分JRE和JDK。
过去,如果运行Java程序,只下载JRE就可以了。JRE包含Java虚拟机(JVM)和“java”命令行工具。
如果开发Java程序,需要下载一个JDK。JDK除了包含JRE中的所有内容,还提供了javac编译器及一些工具,比如javadoc(Java文档生成器)和jdb(Java Debugger)等。
为什么要用“过去”这种说法?
直到Java 8,尽管JDK有一个独立的JRE文件夹,Oracle网站还是把JRE和JDK作为单独文件提供下载。到Java 9这种区别没有了,只有JDK下载。与此同时,JDK的目录结构也变了,不再出现独立的JRE文件夹。
虽然某些发行版(参见Java发行版章节)仍然可以单独下载JRE,只提供JDK似乎已经成为一种趋势。从现在开始,Java与JDK可以替换使用。
如何安装Java?
先不考虑Java-Docker镜像、.msi安装包或者平台特定的软件包。归根到底Java只是一个.zip文件,仅此而已。
在计算机上安装Java只需要解压缩jdk-{5-13}.zip文件,甚至都不需要管理员权限。
Java发行版
有各种网站提供Java下载,但是不清楚“提供的内容以及采用怎样的许可”。本节会对此进行讨论。
OpenJDK项目
就源代码而言,只有一套Java源代码,存在OpenJDK项目中。
但只是源代码,不是发布版本(.zip文件中针对特定操作系统编译好的Java命令)。理论上,您可以从源代码构建一个版本然后发布,把它叫做MarcoJDK好了。但是这个发行版缺少认证,不能对外号称与Java SE兼容。
这就是为什么一些供应商会自己构建、进行认证(参见TCK)然后发布。
尽管供应商不能从String类中删除方法,但是可以添加商标或者他们认为有用的其他实用程序(比如CLI)。除此之外,所有Java发行版的源代码都是一样的。
OpenJDK Build(Oracle提供)与OracleJDK Build
Oracle是Java供应商之一,这样产生了两种不同的Java发行版,开始可能会觉得非常混乱。
Java 8之前,OpenJDK和OracleJDK的源代码实际上不一样,可以说OracleJDK“更好”。时至今日,两个版本几乎相同,只有细小差别。
归结起来,付费的Java商业版为您提供的就是电话支持。
AdoptOpenJDK
2017年,一群Java用户组(JUG)成员、开发者和供应商(包括亚马逊、微软、Pivotal、Redhat等)建立了一个社区称作AdoptOpenJDK。
他们提供免费、稳固的OpenJDK build,可用性与更新周期更长。甚至还有两个不同的Java虚拟机可供选择:HotSpot和OpenJ9。
如果安装Java,强烈推荐
Azul Zulu、Amazon Corretto、SAPMachine。
在OpenJDK Wikipedia网站上可以找OpenJDK build完整的列表。其中包括Azul Zulu、Amazon Corretto以及SapMachine其他版本。为了便于比较,这个列表按照不同的支持选项与维护策略进行了分类。
2019年开始,除非有非常特殊的要求,否则请从https://adop较好enjdk.net获取jdk.zip (.tar.gz/.msi/.pkg)或者从操作系统供应商提供的软件中选择。
延伸阅读:
内存管理依然是非常大的挑战。 未来会有更厉害的垃圾回收器来支持更大的堆空间
多线程和协程。 未来会加大对多核的利用,以及对轻量级线程的支持;
性能。 增加整个 JVM 的执行效率,这通常是多个模块协作的结果;
对象管理和追踪。 复杂的对象,有着复杂的生命周期。加上难以预料的内存申请方式,需要更精准的管理优化;
可预测性以及易用性。 更少的优化参数,更高的性能;
更多 JVM 监控工具。 提供对 JVM 全方面的监控,跟踪对象,在线优化;
多语言支持。 支持除了 Java 语言之外的其他开发语言,能够运行在 JVM 上。
以上就是关于java不同的版本间有什么区别的内容希望对大家有帮助。
最后建议,企业在引入信息化系统初期,切记要合理有效地运用好工具,这样一来不仅可以让公司业务高效地运行,还能最大程度保证团队目标的达成。同时还能大幅缩短系统开发和部署的时间成本。特别是有特定需求功能需要定制化的企业,可以采用我们公司自研的企业级低代码平台:织信Informat。 织信平台基于数据模型优先的设计理念,提供大量标准化的组件,内置AI助手、组件设计器、自动化(图形化编程)、脚本、工作流引擎(BPMN2.0)、自定义API、表单设计器、权限、仪表盘等功能,能帮助企业构建高度复杂核心的数字化系统。如ERP、MES、CRM、PLM、SCM、WMS、项目管理、流程管理等多个应用场景,全面助力企业落地国产化/信息化/数字化转型战略目标。 版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们微信:Informat_5 处理,核实后本网站将在24小时内删除。版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系邮箱:hopper@cornerstone365.cn 处理,核实后本网站将在24小时内删除。