java9模块化在运行上有什么价值? (JAVA9模块化)

java9模块化在运行上有什么价值? (JAVA9模块化)

本文目录导航:

java9模块化在运行上有什么价值?

Java 9模块化在运行上提供清楚价值,特意是在游戏开发、客户端软件以及须要跨平台部署的名目中。

本文将经过详细场景和案例,论述模块化如何成功高效、灵敏与繁复的软件构建。

在经常使用Java编写Steam游戏时,面临言语性能基础与特定性能缺失的应战。

传统JDK虽然提供了少量性能,但并未蕴含一切开发所需模块。

模块化技术便在此时施展关键作用,将外围性能模块与自定义裁减模块整合为一致运转时环境,大幅缩小最终散发包的体积,提升用户体验。

经过将JDK模块、自定义裁减模块以落第三方依赖整合为一个运转时,开发者可以构建一个蕴含一切游戏所需组件的单个部署包。

例如,结合Steam SDK、FXGL、Kotlin、Jackson、GLuon等库,以及JavaFX,开发者能够为游戏创立一个自蕴含的运转时环境,简化部署流程。

此环节似乎将一切游戏所需组件封装在一个易于散发的“魔盒”中,用户只有双击即可启动游戏,无需额外装置。

模块化关于减法与加法的成功提供关键支持。

减法方面,经过精简运转时环境,开发者能够有效去除有关模块,缩小不用要的类库与依赖,从而提升资源经常使用,特意是在客户端开发中。

模块化使得将游戏打包为Native Image成为或许,经过Graal编译器生成针对不同平台(如Android、iOS)的本地可口头文件,成功跨平台部署,清楚降低客户端体积与装置门槛。

加法方面,模块化准许开发者轻松集成第三方C/C++编写的依赖,如JavaFX和Steamworks SDK。

在传统非模块化环境中,此类依赖的集成往往返杂且繁琐。

经过模块化,开发者可以为不同平台生成特定的JAR或JMOD文件,并经常使用JLink将它们整合到运转时中,成功与原生API相反的方便经常使用体验。

此外,模块化还能简化部署流程,无需用户装置JRE或自定义运转时,经过启动文件或渠道平台(如Steam)智能散发和启动运行。

综上所述,Java 9模块化经过提供高效资源治理、灵敏依赖整合与方便部署方式,为开发者带来清楚价值,尤其在游戏开发、客户端软件以及跨平台名目中展现出弱小长处。

Java能否真的行将被取代?

关于最近有关 Java 行将分开历史舞台的传言,您或许想知道在这个时刻丢弃经常使用 Java 平台并转而经常使用降级的技术能否机遇成熟?在作出您的判别之前,请先回忆并检查一下 Java 生态系统以及它的竞争者,看看这些风闻能否站得住脚。

换而言之,了解整个 Java 环球目前的现状,并主观公正地评判这个平台。

在在校生时代,咱们或许会想起 Thomas Malthus 所做的预言,他以为人类赖以生活并继而构成人类文化的农业体系,或许无法再接受人口数量的不时攀升,另一方面,这种状况将无法防止地形成严重的结果,理论会惹起渺小的劫难或其余人造灾祸。

他这样写道:若对人口数量不加限制,将呈几何比例增长。

而人们赖以生活的物质则以算数比例增长。

与后者相比拟,假设稍微了解一下这些数字,就会看法到人口增长是如许惊人。

这象征着,针对生活物质的匮乏,须要对人口增长启动严厉而耐久的控制。

物质匮乏终究会出当初某些中央,并且必然会严重影响到大局部人类。

Thomas Malthus 在 1798 年宣布了 “人口论”。

从那时开局,咱们不时在期待着验证有关人口增长的 “Malthusian 测验”。

编程人员,特意是经常使用 Java 平台和言语的人员,或许曾经留意到,随着经常使用难度不时参与,人们的种种预测和统计暗示着他们所选用的平台行将衰败。

而少量候补接任者摩拳擦掌:人们提名 、Ruby 甚至是 Python 作为 “下一代关键技术”。

这两种 “Malthusian 学说” 之间存在着惊人的相似之处。

Malthus 以为,由于食物对人类的生活十分关键,而地球的产出有限,并且繁衍所需的动物体系是不会扭转的,咱们终将到达一个极限,那时地球将无法接受人口累赘。

换句话说,假设继续以如今这样的方式生活,将注定消亡的终局。

那么在 1798,很难颠覆 Malthus 的学说。

雷同,在过去十八个月中,Java 社区出现了一种新趋向:即预测 Java 平台的消亡日期。

从一些低级的资讯杂志将其称为 90 年代的技术,到夸张其辞的技术演讲者宣传它的现状,再到各种书籍宣称咱们正在 “逾越” Java 时代,不难发现一点:经过正当的暗示、代码展示、逻辑或统计性说明,Java 正在走向衰败。

Malthus 错过了工业反派,然后者引发了天翻地覆的变动。

在 Malthus 永世中,他见证了人类农业消费劲的渺小飞跃,这要得益于蒸汽机和轧棉机这些发明。

这些设备为他的学说提供了关键的 “缺失的咨询”,它们使食粮产量成倍增长,从而使农业系统能够打败制作了少量人口的 “两性热情”。

随后,人口控制方面的技术翻新对降低人口增长起到了相反的作用,减轻了人口累赘,从而形成了很多西方国度出现人口负 增长,因此状况与 Malthus 的相当正当的逻辑齐全相悖。

而一切这一切在 Malthus 撰写其论文时是无法预感的,使人类能够超越他所预测的农业系统的接受极限而继续存活,并且防止了由此而来的一系列劫难。

而技术批判家所疏忽的则是 Java 虚构机的代替言语的兴起引发了渺小的变动。

不过不要随便置信我的一家之言,让咱们逐个检查支持这种说法的论证,看看它们能否站得住脚。

Malthusian 式的 Java 预测 一些人仅仅援用了一些统计性形容,说明 Java 不再是程序员中最注重的言语,就方便的判定 Java 曾经在走下坡路。

其他人指出 Java 不足其代替环境所提供的某些不凡个性,这些个性被标榜为用户及其运行程序的 “需求”。

还有一些人宣布(毫在理想依据)诸如 “大企业不会再经常使用 Java” 等舆论,从而明白地暗示,假设大企业不经常使用 Java,那必然是由于这种技术不值得经常使用。

Java 言语,从更大的水平来讲,Java 平台及其生态系统,很早以前就超越了 Simon Peyton-Jones 所谓的 “生活阈值(The Threshold of Immortality)”,就像 C++、C、COBOL 和其余言语所教训的一样。

这些工具简直可以永远存在下去,这是由于它们将继续提供有用的性能,或许是由于重写代码的尝试或许要比继续按原样经常使用和保养系统付出更多的代价(有关特定言语或系统终究属于这两个要素的哪一种,存在很多的争议,而这关于本文的目标则有关紧要)。

另一个论据让一切痴呆人都丢弃 Java 而转向平台 X 或言语 Y.在 2005 年的一篇 BusinessWeek 文章 “Java? Its So Nineties”,援用了很久以前就开张的运行主机公司 NetDynamics 的前 CTO Peter Yared 的话,“Java 像恐龙一样新鲜”。

可是,还未来得及搞清楚利益抵触和推理逻辑,这篇文章就写到 Yared 一切的公司正在尝试在 LAMP(Linux?/Apache/MySQL/P-language)栈之上从新创立运行主机体验。

(指出 Ruby 的设想实践上早于 Java,雷同还包括 Perl 和 Python,这样做有些无礼,更不要说 Linux、Apache 和 MySQL……因此这里我就不便再多做解释了)。

援用我青睐的一部电影,“生活是痛苦的,殿下。

持不同观念的人肯定有所希图”。

或许,为了更失外地解释这个主题,可以这样说:“过渡到一个新的平台是痛苦的,CTO 先生。

持不同观念的人肯定有所希图”。

兴许并不令人惊讶,关于一些曾经从新定位到其余技术畛域的 Java 专家来说,状况确实如此。

来看看另一个论据,它说 “Java 的顶级言语的位置曾经不保,因此它的消退必然十分凄惨,因此最好避开这场劫难”。

这种论据所依据的是一个最基本的前提,即假设 Java 不再是环球上最滞销的技术,则不值得再提供该言语的支持。

而这种说法若经过逻辑推理,则基本毫无情理。

统计信息很久以来不时被以为是无法靠的(假设经常使用不当的话),正如 Benjamin Disraeli 的奇妙解释,他说:“环球上有三种流言:流言,谩骂和统计”。

统计信息可以用来论证最靠不住脚的论据,只有要依据论据细心挑选所需的统计信息。

留意 BusinessWeek 一文中经常使用的援用:“考查……显示 Java 的经常使用逐渐衰败,而 LAMP 和 Microsoft? 的 技术势头微弱”。

喔,听上去状况不妙。

但是,请继续读下去,“依据 Evans 的春季考查显示,在北美经常使用 Java 作为其首选编程言语的开发人员的比例已降低到 47.9%,而 2002 年秋为 51.4%”。

因此,在过去六年中,在经常使用 Java 作为其首选 编程言语的开发人员中,经常使用率降低了 3.5 个百分点。

请留意,这里经常使用了 “首选” 编程言语一词,这象征着开发人员自己须要区别什么是他们的 “首选” 言语。

思考到少量的 XML 性能,经常使用 Spring/Hibernate/JSP Java 栈的开发人员或许可以很好地判别出 Java 不再是他们的首选言语。

留意过去六年中 Java 平台之上兴起的灵活言语(Jython、JRuby、Groovy 甚至是 JavaFX),依据我和我的共事(“No Fluff Just Stuff” 的演讲者)在 NFJS 优惠的非正式投票中取得的运行数字,这些灵活言语可以很轻松地解释这三个百分点的降低。

思考雷同摘取自同一篇文章的援用:“在另一份考查中,当天春季,PHP 在北美的驳回曾经回升到 36.1%,而 2002 年同期为 26%.其增长速率简直和欧洲和亚洲一样快”。

思考到这是一个不同的考查系列,它只是为了显示 PHP 的增长,而不是 Java 市场的萎缩。

祝贺 PHP,但是任何钻研过企业环境的开发人员都可以证实,消费软件部署并不像这篇文章的作者力求暗示的那样是一个零和(zero-sum)游戏。

大型 IT 环境理论由种类单一的工具、平台、言语和产品组成。

理想上,咱们简直可以在这里成功 整合,特意是那些大型机组件。

谈到主机,理想上,COBOL 在几十年前就不再是最关键的言语了,但是,它如今依然继续用于现金支付、转移贷款、支付信誉卡等业务并运转关键的金融网络,虽然很多行业威望早曾经宣布了它的 “死亡”。

关于本应在坟墓里腐朽的技术,这真实是不错;这使我想起 Mark Twain,当他看到故乡报纸上他的讣告时说:“先生们,关于我死亡的报道被严重夸张了。

” 但是,撇开统计数字的疑问不谈,第二个疑问更严重:为什么仅仅由于所选的工具不是最好的就弃而不用?Java 占据软件开发的首要位置近十年,仅仅由于它 “降低” 到第二位,游戏就完结了?甚至以为仅仅由于人们的惰性就会阻止 Java 从新复原首要言语的位置,理想是,10 个程序员外面有 4 个会继续经常使用这种言语,这将保障 Java 在未来几十年里依然坚持生动的生命力。

更荒唐的说法是,Java 的增长将面临急刹车,并且再也不会出现 Java 部署,但是,Java 目前在整个行业内获取了宽泛的部署,这可以保障 Java 继续出现相当长的期间。

虽然COBOL 被宣布曾经死亡,但是要求经常使用它的人每年到达 6 至 7 位数。

但是指出一个论点的缺陷并不能证实另一个观念,关于本文也是一样的。

相反地,咱们应该用批判的目光看待 Java 言语友好台,而其强项和劣势经受住了严厉的剖析。

Java 之所以短命在于它能满足未来十年的需求,而不是由任何作者或批判家来选择它的生死。

最后,咱们思考一下构成 Java 平台的那些组件: Java 编程言语。

坦率地讲,这是平台中最能表现其短命的局部,特意是与一些诸如 C#、Groovy、(j)Ruby 或 Scala 等更 “现代的” 言语比拟时。

近来涌现出少量关于改善该言语的倡导,诸如为该言语参与闭包等极具竞争力的提议,证实了程序员十分盼望 Java 能够具有其余言语的一些个性。

但是,Java 5 中最新言语增强性能所带来的联结成功应该成为一切新的严重言语变卦的“留意刹车”的揭示。

某些增强,比如 for 循环或注释,获取(相对)普遍的支持。

但是其余一些增强,比如泛型,则遭到(相对)普遍的讥笑和批判。

理想是没有任何一种言语性能能获取它本应协助的开发人员社区的普遍接受,这个理想通知咱们:为一个已存在十年多的言语参与新的言语个性是很辣手的事情,假设成功,也很或许会造成言语自身的解体。

在 Java 平台的地图中,这个区域标注着“老水手”的正告:“此处有怪物!” 非Java JVM 编程言语。

在Java 止步不前的中央,其余言语提供改良和增强的处置方法。

Groovy 围绕 Java 对象提供了一个灵活、主观的脚本处置打算。

(j)Ruby 在 JVM 之上提供 Ruby 成功,为 Java 程序员开拓了 Rails 和 ActiveRecordoffers 的环球。

Scala 和 Jaskell 给 JVM 引入了性能概念,为所出现的并发性疑问提供可行的处置打算。

诸如此类。

由于一切这些言语要么编译成字节码,要么经过 API 作为解释言语在 JVM 上运转,因此 Java 生态系统的一切财产都是可以应用的— 而这是 Ruby 开发人员无法做出等同申明的一个方面。

在 Java 平台的地图中,这个区域被标注为“机遇之国”。

Java 虚构机。

幸运的是,Java 言语曾经做出了严重订正和基本色的变动,而 JVM 作为 Java 平台的底层基础,变动并不多。

近来,在博客环球中,许多人倡导使 JVM 对灵活言语更友好,这使 Sun 公司的一名工程师(John Rose)提供了 JVM 的订正版,最后称为多言语虚构机( Multi-language virtual machine,MLVM), 现改名为 Da Vinci Machine(由于严密地包装在代码中)。

此处的关键在于被提议的 JVM 更改要防止任何有或许使 Sun 公司在 JVM 提升上的庞大投资作废的事情。

那些提出倡导的人在设计细节时不时将这一点牢记于心。

Java Standard Edition 库。

Java Standard Edition 附带了渺小的函数集,数量级比 C++ 规范库更大,甚至许多要素比它前身 Java 1.0 都大,并且这还没有思考 Enterprise Edition 库(接上去探讨)。

外表上,这看起来像 Java 开发人员的人造长处,但细心思考就会发现一些纤细的疑问。

对初学者而言,库的庞大象征着许多 Java 开发人员看法不到他们在写一些实践曾经存在的代码,这些代码收藏在一个在此之前未知的包中。

依据存在期间的不同,库自身有时也会遇到 API 设计期间的烦恼,其中有许多 都源于 90 年代中期,那个时刻开发人员设计类和库的方式与 2008 年的设计方法一模一样。

一局部开发人员也深受笼统过多之苦,正如创立对象构建者的工厂所例证的一样,这些对象构建者创立的接口实例不肯定能成功开发人员感兴味的方法。

但是,虽然 JSE 库有缺陷,但从全体来说 JSE 依然有长处,尤其是当它与像 Groovy 提供应 JDK 的裁减(称为 GDK)这样的言语支持增强结合时。

Java Enterprise Edition 库。

没有任何技术能够比 EJB 对其社区发生更大的冲击,并且幸运的是,Java 社区看到了轻量级代替打算的兴起,Spring 和 Hibernate 提供了最后的例证,对这些场景来说,轻量级代替打算是理想选用。

但是,假设临时不思考 EJB,Java EE 库就是十分成功的 — servlets 和 servlet 容器为遍布 Internet 和企业外部网的少量 Web 运行程序提供能源,JMS 提供对多种面向信息两边件系统的访问,JEE 畛域中其余不太出名的介入者(如 JNDI) 毫无牢骚地口头自己相应的义务。

JEE 库很有或许受益于 API 从新设计,JSE 库就是这样,总体来说 JEE 库将满足 Java 程序员的须要。

最大的疑问往往在于看法何时首先须要 JEE 库。

咱们将在另一篇文章中探讨关系内容。

Java-API-for-XML (JAX) 库。

虽然名义上是 JEE 库的一局部,但 JAX API 的数量和规模都在以与 JEE 其余局部不相称的速率增长,值得脱离 JEE 的高低文来思考 JAX API。

在近十年,虽然对 XML 支持的需求是渺小并且普遍的,但目前曾经有所缓解,尤其是 Web services (WS-*) 周边畛域和规范营垒(这些规范准许与其余技术之间成功普遍、轻松的互操作,包括 )。

在这里,Java 无疑须要某种类型的订正,由于 SAX、DOM 和 StAX API 经常须要更多的代码来成功关键义务,尤其是和具有更灵敏的 XML 支持的言语相比时,比如 E4X、Ruby 或 Scala。

此处,以 XML 为中心的思维有了清楚的扭转,从早期的 WS-* 成功中“不接触 XML”到基于 RESTful 方法的“我宿愿间接接触 XML 并将其定址为方式良好、无心义的 URI”,这种方法也强调了 JAX 畛域内重构的必要性。

在 Java 环球的地图中,这个区域被标注为“(应该)弃用的” 客户端 Java。

Sun 公司最近订正的“Java客户端”系统的测试版有个相当蹩脚的名字 “Java SE 6 Update 10 Beta”,它提供了增强的客户端个性,包括新的 Swing 外观,称为 Nimbus。

遗憾的是,在客户端度量 Java 的经常使用不时都存在疑问,关键是由于专门用于度量的 applet 在 Internet 上曾经经常使用了很长一段期间,还由于泛滥对 Web 托管运行程序的设计和架构关注点都以 HTML 的生成为中心,而不是生成如今所说的“富客户端”运行程序。

随着驳回速率的提高,Java 要经过漫长的旅程,追逐它在这个畛域中的关键竞争对手,Flash 和微软在该畛域新引入的技术 Silverlight 使状况变得愈加复杂。

Java 或许也会彻底失去阵地,这并不代表着这种平台的“消亡”,但会使疑问好转,当业内学者和商业杂志将其称为“Java 技术弱点的清楚例证”时,肯定要鼓舞自己! 主机端 Java。

这真实不容争议:Java 毫无不懂是主机畛域内既定的介入者,特意是在检查非 Windows? 后端场的选项时。

LAMP 系列产品或许提供一个前端或垂直筒仓代替打算,正如 Ruby on Rails 所做的一样,但观察关键的主机计算基础设备时,Java 系列产品的笼统十分突出。

理想上,正是这种上游位置促使微软最先踊跃地寻求 WS-* 规范,以使 代码至少能调用和配合既定的 Java 基础设备。

微软最近认可了使互操作性向更正式的水平开展,他们在剑桥大学设立的“Interoperability Lab”也表现了这一点。

生态系统。

没有其余的平台领有像 Java 平台一样如此丰盛多样的生态系统,但是这经常会给 Java 开发人员带来一些费事(“我该经常使用哪种 Web 框架?”),理想上,很多 Java 生态系统都渗入其余环境,尤其是。

思考 近来在微软内外取得的提高:ObjectBuilder(依赖性注入框架)、ASP MVC(基于 MVC 的 Web 框架)、NHibernate(Hibernate 的一局部)、NAnt 和 MSBuild(在句法或概念上与 Ant 相似的基于 XML 的构建系统)甚至 Silverlight 自身(在阅读器外部托管 CLR,准许口头更丰盛的客户端)。

在许多方面, 生态系统为 Java 社区做了将近五年的后台,由于 开发人员发现了与 Java 开发人员在五年前遭逢的相反痛点。

而 Java 依然坚持向 社区学习(比如一致通讯 API 的有用性或显式轻量级上班流引擎的弱小力气)。

这只用来说明这些环境都正在相互学习这一理想,而且也标明, 并没有使 Java 成为不用要的才干。

毫无不懂,Java 开发人员可以将他们自己的条目参与到这个列表中,证实这个论点:在 Java 平台中留有太多的优异的物品被以为“消亡了”或“将要消亡”或许甚至在“解体的边缘”。

王者终将归来 最方便的理想是:Java、平台、生态系统、环境和开发社区与消亡相去甚远,至少和目前正在经常使用的其余言语或平台距离一样远。

即使是最严厉的统计理想挑选也不能否定 Java 的上游位置。

此外,即使 Sun Microsystems 公司开张,平台也不会消亡。

全环球的 Java 的开发人员,联结起来!不要胆怯约束的铁链:最终您将看到,这些铁链其实并不存在。

多亏 Java 平台的开源,它如今被称为 OpenJDK,更不要说 Java 的其余开源“净室”成功(Apache Harmony 和 Soy Latte 只是其中之二),即使 Sun 公司彻底从地球上隐没,包括 IBM?、Apache、BEA 和 Oracle 在内的其余实体也能继续提供 JVM、库和工具,来支持全体生态系统。

Java 总有一天会消亡?它甚至能比刚刚走出大学校园的第二代 Java 程序员走的更长 育路网

azulzulujdk和oraclejdk区别有哪些?

在比拟AzulZulu JDK和Oracle JDK时,首先须要了解这两个版本在性能、性能和稳固性上的不同。

AzulZulu JDK理论被视为开源版本,而Oracle JDK是由Oracle公司开发并保养。

若聚焦于JDK8版本,咱们发现AzulZulu JDK与Oracle JDK存在一些差异。

AzulZulu JDK在性能上并未蕴含Oracle JDK的JMC(Java Mission Control)、VisualVM和JFR(Java Flight Recorder)工具。

这些工具在Oracle JDK中用于性能监控和缺点诊断,但在AzulZulu JDK中并未提供。

在类共享数据方面,AzulZulu JDK也有所不同,它并不支持这一性能。

类共享数据准许多个进程共享相反的类,这关于散布式系统和容器化应用具有关键意义。

由于AzulZulu JDK的缺失,开发者在启动此类运行开发时或许须要额外的性能或选用其余支持此性能的环境。

另一个清楚的差异在于AzulZulu JDK中缺少文件。

此文件是JavaFX的外围组件,担任处置图形用户界面和多媒体运行。

因此,关于依赖JavaFX性能的开发者和运行而言,在AzulZulu JDK下或许无法反常运转这些运行。

内置字体缺失也是AzulZulu JDK的一个疑问。

在某些状况下,这或许造成字体显示疑问或不分歧性,影响用户界面的外观。

相比之下,Oracle JDK提供了更片面的字体支持,确保在各种环境和操作系统下的良好显示成果。

综上所述,从Oracle JDK切换至AzulZulu JDK时,开发者须要留意上述性能和兼容性的差异。

在启动切换前,细心评价运行的依赖性、性能需求以及团队的技术栈,以确保颠簸过渡并最大限制地缩小潜在的兼容性疑问。

在某些状况下,虽然切换至AzulZulu JDK或许带来老本或容许方面的长处,但这些差异也或许会对运行的开发和部署环节发生影响。

你可能想看:
« 上一篇
下一篇 »

相关推荐

java中什么是冒泡,冒泡算法

2026年09月06日

27阅读

java中冒号,java双冒号

2026年09月06日

26阅读

java中的->,java中的是什么意思

2026年09月06日

24阅读

java中的super用法,Java中super的说明

2026年09月06日

28阅读

java中反射的应用,java中反射的应用场景

2026年09月06日

25阅读

java中开关的定义,Java关键字有哪些

2026年09月06日

25阅读