java openjdk,什么是openjdk
00-1010 Java和OpenJDK有什么特别之处?OpenJDK是怎么产生的?OpenJDK的工作原理和优点是什么?Java语言与架构无关。JVM是可移植的Java。它非常简单并且是面向对象的。每个人都熟悉Java是如何健壮和安全的。OpenJDK是如何开发的?OpenJDK是太空竞赛的基础。OpenJDK的升级过程是错误的。新功能的实现和过时功能的放弃是固定的。主要分支之外的项目规格发生变化。释放节奏被改变。为什么开源比闭源好?为什么会有这么多OpenJDK厂商和实现?结论前言:
OpenJDK是Java的开发工具包,已经有26年的历史了。以任何标准来看,它都不是一门新语言,尤其是在行业内。每隔几年,就会有新的解决方案出现,而且通常都比以前的好。最流行的Java实例OpenJDK已经有14年的历史了。反正OpenJDK应该换过很多次了。但它仍然是世界上最流行的开发工具之一!这是怎么发生的?
在本文中,我们将尝试回答这个问题,深入研究OpenJDK的不断升级过程,讨论开源开发方法,并描述让Java如此独特的所有因素。
目录
00-1010 Java的历史始于1991年,当时Sun Microsystems的工程师对C和C编程语言的局限性和API感到失望。该语言的原型最初命名为“Oak”,后来改名为Java。
它于1994年首次可供下载,1995年首次公开发布,并几乎立即在当时流行的Netscape浏览器中获得支持。
2006年,Sun发布了Java HotSpot虚拟机和编译器,作为GNU通用公共许可证下的自由软件。从此,OpenJDK的历史就从Java 6和7的开源开始了。2006年到2008年,开放代码越来越多。
现在,OpenJDK的代码对任何人都是可用的,是由Oracle周围的一个大型社区开发的。有许多OpenJDK发行版可用,包括BellSoft构建的Liberica JDK,任何人都可以根据开源方法免费探索和使用。
Java和OpenJDK的特殊之处是什么?
Java诞生时形成了几个目标,包括:
Java非常简单,面向对象,大家都很熟悉。Java是健壮和安全的。Java和架构无关,JVM是可移植的。Java可以高性能地执行。这些原则仍然是OpenJDK受欢迎的原因,因此探索它们中的每一个并理解它们如何影响开发人员和最终用户的生活是很重要的。
OpenJDK是如何产生的
Java代码与架构无关,这意味着如果写得正确,它可以在任何设备上启动,从PC到现代的微波炉。这是一个JVM,一个Java虚拟机,一个执行应用程序的运行时,利用Java最重要的特性来实现。
通常大多数编程语言都是把代码编译成机器码,对于任何平台都是不一样的。Java编译器以不同的方式工作。它创建了特殊的“Java字节码”,可以由运行在任何系统上的Java虚拟机执行。
反过来,JVM使用动态编译器在应用程序执行期间编译代码。
这种方法允许相同的代码在完全不同的平台上运行,只需很少或不需要重写!没错,如果你遵循指导方针,你可以写一次程序,然后在任何地方执行。所以如果你想用现代微波炉的触摸屏玩俄罗斯方块(或者统治世界),Java是最简单的语言!
但非常严重的是,这种称为“一次编写,随处运行”的方法允许您不必处理不同的架构、操作系统、驱动程序或硬件。您唯一需要做的事情就是为所选平台使用虚拟机。有许多受支持的虚拟机,甚至更多。
OpenJDK的工作原理和优点是什么
现在,Java语法不再是最简单的.至少目前是这样,因为许多正在开发的新特性使得代码更容易阅读和编写。然而,在构思时,它比竞争对手更有组织性。Java语言规范是一套规则,以确保所有的创新都遵循相同的逻辑,并根据Java思想体系创建。所有的API都是为了相互兼容和Java规范而创建的,所以它拥有你需要的一切,不仅可以有效地编写代码,还可以检查和利用其他人的工作。实现新技术的新编程方法,如开关模式匹配和vector API,正在不断实现。
00-1010作为一个开源项目,OpenJDK的代码可以被任何想要检查或增强其安全性的人使用。这意味着新发现的漏洞将通过季度CPU版本不断修补。对于JDK Liberica,我们的支持人员将修复这些漏洞。
此外,借助广泛的安全工具选择,如漏洞扫描程序,您可以确保危及应用程序和基础设施安全的企图不会得逞。
">
Java是高性能的
有很多方法可以提升您的OpenJDK应用程序。JVM中的编译器优化代码以获得最佳性能。如果启动时间更重要,则可以使用GraalVM本机映像技术,将应用程序与运行时打包到单个可执行二进制文件中。
OpenJDK是如何开发的
OpenJDK作为太空竞赛的基础
您可以将编程语言与发射宇宙飞船的太空港进行比较。当开发人员构建他们的应用程序宇宙飞船时,他们希望基础设施能够工作并使他们的生活更加轻松。这意味着编程平台和运行时功能上的每一个错误都会使他们陷入危险的境地,因为他们做的一切都是对的,但发射失败了,造成了时间和金钱的浪费。
那么他们为什么选择OpenJDK呢?因为它是由一个可靠的大型社区管理的太空港。
让我们了解一下OpenJDK中的一切工作原理。
OpenJDK的升级过程
OpenJDK的开发可以分为几个方向:
Bug修复;新功能的实施和过时功能的弃用;主要分支机构以外的项目。让我们深入讨论它们。
错误修复
今天,当GitHub用于OpenJDK开发时,这个过程大部分是自动化的,比以前快了很多。为了报告新发现的错误,开发人员使用邮件列表来描述错误,然后给出一个数字。。
当开发人员希望修复bug时,他们会在存储库中创建一个fork,它基本上是整个项目的副本。然后在这个fork中,开发人员编辑代码的必要部分来修复bug。测试成功后,他们会发出将新代码拉回主分支的请求。然后对代码进行审查,如果符合要求,则将其实现到OpenJDK下一版本的主分支中。该系统允许任何开发人员尝试修复任何发现的bug。
新功能的实施和过时功能的弃用
新特性通常通过几个步骤来实现。首先,它是由开发人员作为概念(草案)提出的。名为OpenJDK lead的管理委员会成员决定该功能是否值得开发。
批准后,草案更新了必要的说明和基本实施建议,成为JEP(JDK增强建议)。它在完成之前经历了许多阶段。
实现过程本身类似于前面描述的bug修复,是通过GitHub上的fork分支完成的。由于新功能分阶段发布,此过程可能需要很长时间才能完成。预览涉及语义和语法,孵化器一 API更改。在该功能的最终实现发布之前,可能会有多达3个预览或孵化器。这样做是为了让开发人员能够测试新功能,并查看它与新代码和现有代码的配合情况,以免破坏已经在工作的应用程序。通常在两次预览或孵化器之后,新代码要么以最终形式添加到版本中,要么在被认为不安全或性能不佳时删除。
主要分支机构以外的项目
一些对Java功能影响很大的项目是在主分支之外开发的。如果成功的话,他们会彻底改变语言,但他们需要很多时间来完善。如果需要,它们仍然可以在当前状态下实现到OpenJDK中,一些开发人员通常会这样做。随着时间的推移,它们将成为JEP,并成为下一版本的一部分。
规范变更
以JSR的形式提出并开发规范升级一 Java规范请求。这些都要经过由指导Java技术发展的公司和人员组成的执行委员会的公开审查和投票。BellSoft与阿里巴巴、亚马逊、IBM、英特尔和甲骨文等公司也是该委员会的一员。
释放节奏
OpenJDK有三种类型或版本:
之前讨论过的季度CPU发布。它是在考虑安全性的基础上构建的,由漏洞和bug修复组成。技术发布一 带有新功能的编号版本,主要用于试用。对于开发人员来说,测试新技术、让他们的应用程序为旧技术的弃用做好准备,以及规划他们未来的工作都很有用。LTS(长期支持)编号的版本。这些都是经过测试的实现,将得到供应商最长时间的支持。它们是在企业环境中开发和运行程序的基础。在2017年Java 9发布之前,可能需要将近5年的时间才能推出新的编号版本。从那以后,Oracle转向了新的发布cadence,每年发布两个编号的版本,每两年发布一个新的LTS版本。Java 17是最新的LTS版本,下一个版本将于2023年9月发布Java 21,以下版本将每两年发布一次。
支持本身由许多供应商提供,包括BellSoft,新版本的Liberica JDK与其他主要发行版同时发布。
为什么开源优于闭源
必须记住,OpenJDK是一个开源项目。这很重要,因为所有封闭源代码的替代方案本质上都是黑盒子。理论上他们会更安全吗?对但从理论上讲,它们可能包含大量无人知晓的漏洞……或者可能除了那些已经利用这些漏洞与开发人员窃取资金或信息的数据窃贼之外,没有人知道。
在开源中,这是不可能的。你总是知道什么有效,什么无效,以及为什么。当然,恶意参与者可以研究代码,但大量开发人员和安全管理人员也可以!所有漏洞都会很快被发现并修复。所有加密算法和安全措施都可供测试。
还有一件事一 如果你认为你能做得更好一 你可以直接去做!这就引出了下一个问题。
为什么有那么多OpenJDK供应商和实现?
除了原始的OpenJDK之外,还有许多供应商出售或免费提供自己的版本,包括生产Liberica JDK的BellSoft。为什么有这么多可供选择,有什么区别?
答案很简单一 功能、安全和支持。所有Java开发工具包,包括Oracle Java SE,都基于OpenJDK。它们都可以按预期的方式运行Java代码,并且在一切正常的情况下,它们是相似的。当出现问题时,差异就会出现。
结论
OpenJDK是一个惊人的应用程序开发平台,它只会随着年龄的增长而变得更好!
到此这篇关于Java中的OpenJDK使用原理的文章就介绍到这了,更多相关 Java OpenJDK 内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。