java 1.8新增功能_睡觉时:新增的Java 8新增功能

java 1.8新增功能

Java8生日 自Java 8推出以来,最有趣的功能是什么?

Java 8最近庆祝了它的第一个生日,其主要版本已经在一年多以前了。 这当然值得庆祝。

自从最初的Java 8版本问世以来,已经发布了六个更新。 这些更新中的某些元素是次要的,但是如果您不注意的话,您可能会漏掉一些有趣的附加内容。 这里有五个您应该检查的:

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来自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.html

java 1.8新增功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/337662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ 为什么不加入垃圾回收机制

点击蓝字关注我们Java的爱好者们经常批评C中没有提供与Java类似的垃圾回收(Gabage Collector)机制(这很正常,正如C的爱好者有时也攻击Java没有这个没有那个,或者这个不行那个不够好),导致C中对动态存储的官吏称为程序员的噩梦,不是…

c++ 共享内存_Python3.8多进程之共享内存

最近发了个宏愿想写一个做企业金融研究的Python框架。拖出Python一看已经更新到了3.8,于是就发现了Python 3.8里新出现的模块:multiprocessing.shared_memory。随手写了个测试。生成一个240MB大小的pandas.DataFrame,然后转换成numpy.recarra…

计算机主机箱外部介绍图,电脑的主机结构是怎样的 电脑主机结构图【图文】...

在电脑已经普及的今天,基本上每家每户都有电脑了,大家用它来看电影,搜索资料啊,上网啊等等。在我们日常的娱乐方式中,电脑也是我们的娱乐项目之一,至少还是好多人用它看电影和追剧的。但是机器会有故障的时…

C 语言各数据类型的内存映像

点击蓝字关注我们C语言各种数据类型的内存映像&#xff08;32位平台&#xff09;&#xff1a;0 signed char#include <stdio.h> int main() {char min 1<<7;char max (1<<7)-1;for(int imin;i<max;i)if(i<0)printf("%.2X ",(unsigned char…

用java编写一个图书管理系统_手把手教你编写第一个java程序

安装完jdk后我们就可以试着编写第一个java程序了&#xff0c;让我们一起来试试吧&#xff01;第一步点击开始——所有程序——附件——记事本&#xff0c;新建记事本&#xff0c;输入以下代码&#xff1a;class HelloWorld { public static void main(String args[]) { System.…

go micro java_Java Micro Framework:您无法忽略的新趋势

go micro java什么是Java微框架&#xff0c;为什么要使用它们&#xff1f; 每种语言都有权衡。 对于Java&#xff0c;要成为一种安全&#xff0c;经过严格测试&#xff0c;向后兼容的语言&#xff0c;就要在敏捷性和简化方面做出一些牺牲。 无可否认&#xff0c;有些冗长和冗长…

C语言调用C++类成员函数讲解和实例

点击蓝字关注我们1、问题成因C语言与C调用问题原因主要在于C编译器和C编译器的不同。C是过程式语言&#xff0c;C编译器编译后&#xff0c;函数在符号库中就是函数名&#xff0c;没有其他任何附加信息。而C是对象式语言&#xff0c;支持函数重载&#xff0c;C编译器编译后&…

学生命科学要学计算机吗,现在学生物学出路真的有那么不济吗?

最近浏览知乎&#xff0c;看到大规模的生物劝退贴&#xff0c;这些帖子纷纷拿出多个例子&#xff0c;并现身说法&#xff0c;告诫学生物的同学尽早转行&#xff0c;并声称劝退一人胜发7篇CNS。作为网友盛传的天坑之首&#xff0c;生物专业到底有多坑&#xff1f;环球科学曾对北…

java笔试题_Java面试才到笔试就没有然后了?快来签收,高频笔试57题及解答

前言很多人面试之前&#xff0c;可能没有在互联网公司工作过或者说工作过但年头较短&#xff0c;不知道互联网公司技术面试都会问哪些问题&#xff1f; 再加上可能自己准备也不充分&#xff0c;去面试没几个回合就被面试官几个问题打蒙了&#xff0c;甚至笔试都过不了。最后以惨…

java开发错误_每个Java开发人员都必须避免的9个安全错误

java开发错误Checkmarx CxSAST是功能强大的源代码分析&#xff08;SCA&#xff09;解决方案&#xff0c;旨在从根本上识别&#xff0c;跟踪和修复技术和逻辑安全漏洞&#xff1a;源代码。 在这里查看 &#xff01; 自从1995年中期引入Java以来​​&#xff0c;它已经走了很长一…

C语言中常用的标准库函数有哪些?

点击蓝字关注我们标准头文件包括&#xff1a;<asset.h> <ctype.h> <errno.h> <float.h> <limits.h> <locale.h> <math.h> <setjmp.h> <signal.h> <stdarg.h> <…

计算机考试一级考试基础知识,全国计算机等级考试一级msoffice基础知识

全国计算机等级考试一级msoffice基础知识导语&#xff1a;在日常生活中&#xff0c;媒体(Medium &#xff0c;复数形式为Media )是指文字、声音、图像、动画和视频等内容。多媒体(Multimedia )是指能够同时对两种或两种以上媒体进行采集、操作、编辑、存储等综合处理的技术。多…

2008铁路旅客列车时刻表_天津到新沂汽车卧铺大巴车长途汽车发车时刻表

长途大巴网上需要注意什么&#xff01;选择乘坐大巴&#xff0c;是大家出行时的一个好选择&#xff0c;而且长途大巴网上也 很方便&#xff0c;能让大家节省不少的时间&#xff0c;但是网上有许多的要求&#xff0c;可能大家还不清楚。小编就给大家 介绍下长途大巴网上须知。长…

web ua检测_UA Web挑战会议:针对初创公司的SpringIO

web ua检测在本周&#xff0c;我在“后端”部分的UA Web挑战会议上发表了讲话。 我在演讲中选择了一个奇怪的话题-“面向初创企业的SpringIO”。 结果是什么&#xff1f; 我将在下面总结。 在过去三年中&#xff0c;我开发了各种个人Web项目。 我再也没有称它们为“初创公司”…

手把手教你撸一个线程池 - C++版

点击蓝字关注我们前面的文章在手把手教你写 C 语言线程池中&#xff0c;已经实现了 C 语言版的线程池&#xff0c;如果我们也学过 C 的话&#xff0c;可以将其改为 C 版本&#xff0c;这样代码不管是从使用还是从感观上都会更简洁一些。对这些代码做从 C 到 C 的迁移主要用到了…

备忘录怎么用红笔标注_错题本的正确打开方法,你用对了吗?

相信很多考生都会有自己的错题本&#xff0c;可是并不是每个考生的错题本都起到了作用。那么错题本究竟如何做才可以切实可用又可以做的好呢&#xff1f;大禹未来教育收集整理了相关内容&#xff0c;分享给大家&#xff01;1、制作错题本的步骤步骤一&#xff1a;把所有的练习册…

组装台式计算机需要哪些配件,组装电脑需要哪些配件 电脑装机教程图解

DIY电脑一直都是电脑爱好者非常喜欢的&#xff0c;对于电脑爱好者来说&#xff0c;通过自己动手DIY组装电脑&#xff0c;不仅可以更为深刻的认识硬件&#xff0c;了解电脑主机内部结构&#xff0c;还能够学习到安装系统等知识&#xff0c;从中可以带来很多乐趣。今天我们为大家…

C语言代码优化的实用方法大总结

点击蓝字关注我们1、选择合适的算法和数据结构选择一种合适的数据结构很重要&#xff0c;如果在一堆随机存放的数中使用了大量的插入和删除指令&#xff0c;那使用链表要快得多。数组与指针语句具有十分密切的关系&#xff0c;一般来说&#xff0c;指针比较灵活简洁&#xff0c…

怎么取消苹果手机自动续费_手机腾讯视频的vip怎么取消自动续费?

如果是安卓手机直接在腾讯视频的【个人中心】找到【我的VIP会员】即可选择【管理自动续费】取消自动续费。如果是苹果手机需要在Apple ID中找到【订阅】选项&#xff0c;取消订阅即可。以下是详细介绍&#xff1a;1、如果您是安卓手机直接点击进入【腾讯视频】的应用&#xff0…

计算机专业去荷兰还是瑞典,给申请计算机专业的同学几点建议

计算机专业想来是广大美国研究生申请的热门专业&#xff0c; 这里所说的热门&#xff0c;不光指招生人数多&#xff0c; 就业前景优势也是无容置疑的。广大申请者的硬件条件无外乎分为以下几种情况&#xff1a;1、托福80&#xff0c;GRE 3002、托福90 GRE3153、托福100&#xf…