企业网站加速,优秀的网站设计案例,江苏网站建设公司排名,wordpress导航404java 1.8新增功能自Java 8推出以来#xff0c;最有趣的功能是什么#xff1f; Java 8最近庆祝了它的第一个生日#xff0c;其主要版本已经在一年多以前了。 这当然值得庆祝。 自从最初的Java 8版本问世以来#xff0c;已经发布了六个更新。 这些更新中的某些元素是次要的… java 1.8新增功能 自Java 8推出以来最有趣的功能是什么 Java 8最近庆祝了它的第一个生日其主要版本已经在一年多以前了。 这当然值得庆祝。 自从最初的Java 8版本问世以来已经发布了六个更新。 这些更新中的某些元素是次要的但是如果您不注意的话您可能会漏掉一些有趣的附加内容。 这里有五个您应该检查的 新帖睡觉时新增的Java 8热门文章http://t.co/4bGHVwzo7q pic.twitter.com/lZz2Aq2XTA — Takipitakipid 2015年3月30日 1. Nashorn性能增强 Java 8带来的附加功能之一是Nashorn。 如果您不熟悉“ Nashorn的目标是通过Java与本地JVM一起实现轻量级高性能JavaScript运行时。” 在8u40版本中Oracle发布了对Nashorn脚本引擎的增强以改善Java和JavaScript之间的工作关系。 尽管是完全不同的语言但给定他们的名字让他们两个都能很好地工作会带来一种满足感。 就像双体船上的猫一样。 通过此更新Nashorn已被改写为一种乐观类型系统以更好地应对在Java环境中实现JavaScript的一些挑战即围绕将动态语言如JavaScript输出为Java字节码。 通过乐观类型Nashorn对不能静态推断的局部变量和表达式类型做出乐观假设。 它假定任何类型都是int并在运行时发现错误时立即调整这些假设。 这项增强功能可以使执行代码更加快捷尽管由于调整而导致的预热时间略有降低。 正如Nashorn团队所报告的那样 预热时间问题是Java 9的重点之一因此如果这对您来说是一个大问题那么好消息可能即将到来。 显然您必须在这里确定预热成本是否物有所值但是Oracle为这些Nashorn增强功能运行的基准测试非常令人鼓舞。 与V8相比在某些情况下他们报告了数量级的改进和接近本机的性能。 这些增强功能的另一个潜在的令人敬畏的好处是Nashorn可以扩展到JavaScript以外的其他动态语言。 在这方面仍然需要做一些工作但是现在有了乐观打字系统的基础。 Oracle目前尚未将这些增强功能设置为Nashorn的默认功能因此如果要以这种方式运行Nashorn请使用参数–optimistic-types true。 如果您想了解更多有关此增强功能的详细信息请在此处查看Oracle博客。 从以下版本开始可用 Java 8 Update 40 2.合作记忆管理商业功能 Oracle对Java 8的另一项补充是协作内存管理。 此功能引入了“内存压力”的概念并且全部用于解决内存使用量接近最大水平的情况。 内存压力是系统可用总内存的代表。 内存压力测量值越高系统越接近内存不足。 当系统快要用完内存时JDK将跟踪总内存使用量并采取措施减少总内存使用量。 通常这些步骤将包括减少Java堆大小这可能会对性能产生一些影响。 在这种情况下有意进行性能折衷是值得的。 //边响警报 要注意的重要一点是这是一项商业功能。 如果您是HotSpot或OpenJDK开发人员则将无法使用该功能。 您无疑知道Oracle和Java在商业和开源方面之间的某些紧张关系这是另一个例子。 协作内存管理本身可能是一项商业功能但它会驱动和/或影响属于开源阵营的其他增强功能例如我正在谈论的清单中的下一个功能。 无论您是将这些其他更改视为对商业工作的主要有益结果还是作为尝试将开源用户吸引到商业方面的钩子无疑都涉及一些不透明性问题。 Oracle可以理解没有共享其商业功能的内部测试和基准。 但是当这些功能溢出到开源方面进行的更改时“为什么要进行这些更改”的答案实质上是“因为我们告诉您更好即使我们不会告诉您如何做”您可以看到为什么有些人会不高兴。 并不是说Oracle在弯腰曲折或者某种程度上这仅仅是因为缺乏透明度并不能与开源世界息息相关并阻碍了开发人员真正做出明智决定的能力。 无论如何足够了。 //旁听。 从以下版本开始可用 Java 8 Update 40 3.使MinHeapFreeRatio和MaxHeapFreeRatio标志易于管理 合作记忆管理的增加也是其他变化的催化剂。 其中之一是通过能够在运行时调整其值来使MaxHeapFreeRatio和MinHeapFreeRatio标志易于管理。 通过此更新您可以控制这些标志的值这些标志的默认值分别从70/40更改为100/0以使JVM更好地增长和收缩Java堆。 与协作内存管理不同管理这些标志不是商业性的可以单独使用。 商业的合作内存管理功能确实使跨多个JVM实例的管理变得更加容易但这不是必需的。 无论如何对这些标志的更改应该改善在需要动态堆或更改堆的情况下管理Java堆大小的经验。 现在与所有可管理的事物一样存在严格管理默认设置会导致管理不善而导致性能下降的风险。 获得更多控制权并不是一件好事。 这里的权衡是能够管理这些标志可以帮助您在减少使用次数时减少内存占用或在增加使用次数时更轻松地扩展内存。 即使您是一个倾向于质疑这种由商业驱动的变革所带来的广泛好处的人它本身也确实提供了实实在在的好处如果您属于这个阵营我当然不会为此怪罪您。 如果这些标志出现问题导致代码中出现错误或异常 Takipi会在这里为您找到它们 从以下版本开始可用 Java 8 Update 20 4.新的JAXP处理限制属性– maxElementDepth maxElementDepth属性已添加到JAXP用于XML处理的Java API中以解决资源使用问题。 它使应用程序能够限制其解析的xml文件的最大元素深度。 设置限制时所有JDK和JRE调用都会遵守该限制。 如果您偶尔处理巨大的xml文件并且不想花费大量资源来解析周围的特大文件则此属性会派上用场。 它也可以用作安全性或性能检查以防止您的应用程序被怪物文件占用。 从以下版本开始可用 Java 8 Update 11 5. Java依赖性分析工具jdeps Java依赖性分析工具jdeps是一个新的命令行工具开发人员可以使用它来显示其应用程序和Java库的静态依赖性。 它提供了一定程度的自定义因此您可以从中获得相当广泛的信息。 默认情况下运行它时它将在软件包级别向您显示应用程序的静态依赖关系。 jdeps来自joda-time 您也可以在更细粒度或更详细的级别上运行jdeps。 例如您可以使用指定的特定类运行它以便查看该类的所有静态依赖关系。 或者如果您感到烦躁可以使用-v或-verbose选项来打印所有类级别的依赖项。 这自然会导致大量文本因此jdeps还提供了-dotoutput选项可将所有内容写入文件。 还需要注意的是-jdkinternals选项该选项向您显示JDK内部API中的任何类级别的依赖关系。 有关更多信息请参见jdeps页面。 从以下版本开始可用 Java 8 Update 11 结论 现在Oracle当然已经发布了六个更新其中不仅仅包含这五个附加内容而且根据您所使用的Java的不同我可能还为您遗漏了一些重要的内容例如JavaFX的性能增强但是这些是五个非常值得关注的很棒的东西。 我不能说将来的发行版中会出现什么但是这里是希望有更多有趣的东西。 如果我错过了您发现超级有用的任何补充请告诉我。 翻译自: https://www.javacodegeeks.com/2015/03/while-you-were-sleeping-the-top-new-java-8-additions.htmljava 1.8新增功能