两年前当Java 8发布后,立即受到了业界的欢迎,因为它大大提高了Java的性能。它独特的卖点是,顾及了编程语言的每一个方面,包括JVM(Java虚拟机)和编译器,并且改良了其它帮助系统。

Java是被搜索得最多的编程语言之一。据Tiobe 指数在最近公布的调查结果显示,Java高居榜首。Tiobe指数的结果每月更新一次。它的排名是以世界各地的程序员,工程师,以及编程课程和第三方供应商为对象,把这些群体在谷歌、必应、雅虎、维基百科、亚马逊、youTube及百度这些流行搜索引擎上的搜索行为作为依据,统计出各种编程语言被搜索的情况。Tiobe指数不是要比较哪种编程语言是最好的,或者哪些代码被用得最多。它旨在帮助编程人员了解自己所掌握的编程技术是否跟得上潮流。当需要使用某种语言开发一个新软件时,编程人员可以参考这些指数,帮助自己做出决定。

(数据来源:http://www.tiobe.com/tiobe-index/

回到Java 8的问题上来,它有哪些新功能呢?下面列举5个最主要的功能。

1. Lambda expressions Lambda 表达式)

Lambda表达式是一个匿名函数,它在函数式编程中被广泛使用。即使是基于Java虚拟机的编程语言 Scala和Clojure从一开始就有了Lambda表达式,但直到现在,Java都不支持Lambda表达式,因此在编程时就缺少了一个好方法去写代码。

使用Lambda表达式,开发者可以在任何地方使用函数,它也可以作为代码。在此之前,Java开发者不得不使用带有lambdas的匿名模板类,但这样会令工作变得乏味和难以维护。使用lambda表达式就令工作轻松多了。开发者只需要使用一个用逗号分隔的参数列表或集合就可以了,以及在正文中使用符号“->”。

如果有兴趣了解有关Lambda表达式的使用,可以看一下这位开发者的分享:Livestream Titles

2. JavaScript Nashorn

Java和Javascript一直都是不兼容的,不过Java 8全新的JVM Javascript引擎——Nashorn,可以完全解决这个问题了。

Nashorn在速度执行方面借鉴了SpiderMonkey 和 V8。 它还利用了Java7的特征,例如可以执行得更快的invokeDynamic,并改善了Java早期版本的弊端。更重要的是,开发者现在可以在Java的代码中直接写入JavaScript代码,而不必担心执行速度和任何兼容性的问题。

3. Date/time APIs

Java 8另一个很出色的附加功能是它全新的日期/时间 APIs。它借鉴了Joda time,被开发者用来弥补缺乏的支持。Java API库的属性是复杂的,它很容易令开发者犯错。为了弥补这个问题,Java 8从头开始重写了整个API。重写API的另一个原因是在Joda中有一个设计缺陷。新的APIs具有强大的属性,而且使用简单。

4. Stream API

java 8中的另一个新功能是Stream API,这有赖于Lambda语法。它使开发人员能够处理集合。lambda函数和stream API有助加快Java的函数式编程效率,并帮助开发人员编写更有意义的代码。

Stream API可以让开发者轻松地使用集合和操控它们,例如进行计算,过滤等。另外,lambda函数可以帮助开发者写一些比较简单的代码。只不过要小心不要混淆了Stream API 与InputStream和OutputStream。

5. Concurrent accumulators并行累加器

对开发者来说,在工作中遇到的巨大挑战之一就是如何安全地运行代码线程。一般的开发人员可能无法正确地实现线程安全,因为有太多的情况需要注意,包括需要更新多个线程访问的数字计数器。

用java 8,开发者可以利用并行累加器的class,它使开发者能够以线程安全的方式有效处理计数器。

Java 8似乎让Java找回了在过去几年里失去的荣誉。这些全新的功能将令开发者写出高质量的代码,并令java在众多编程语言中保持竞争优势。

除了以上提到的5大功能,Java 8还有其它新功能也是值得大家学习和交流的。在Livecoding.tv ,一个世界各地程序员分享编程直播和进行交流的社交平台上,就有很多项目是使用java开发的,其中有部分就是使用了java 8。通过观看这些开发者的直播或视频,你可以看到如何应用这些新功能。

Java 8五大主要功能为开发者提供了哪些便利?的更多相关文章

  1. 微软正式发布VS2015和.Net为开发者提供数百个新功能

    今天,我很高兴地向大家宣布:Visual Studio 2015 和 .Net 4.6 的正式版本现已提供下载! 自去年十一月我们提出了微软开发技术的愿景:让所有开发者,无论他在什么平台,开发哪种应用 ...

  2. JBuss--为所有JFinal开发者提供二次开发的后台管理系统

    百度搜索:JBuss 或jfinal.com官网https://www.jfinal.com/share/1704 JBuss背景: 2018年6月1日,作者“为道日损”从上海一家xxx公司离职,那时 ...

  3. 华为云DevCloud为开发者提供高效智能的可信开发环境

    在HUAWEI CONNECT 2019期间,在华为云云服务开发者分论坛上,华为云布道师做了<CloudIDE:开发者的高效.智能的可信开发环境>专题演讲,主要介绍了华为云DevCloud ...

  4. 关于 HSSF 和 XSSF 功能的开发者入门指南 (Apache POI 操作 Excel)

    关于 HSSF 和 XSSF 功能的开发者入门指南 笔者深夜无眠,特此对本文翻译一部分,未完成部分待后续更新 本文源文地址 意欲使用 HSSF 和 XSSF 功能快熟读写电子表格?那本文就是为你而写的 ...

  5. Java 基本数据类型 sizeof 功能

    Java 基本数据类型 sizeof 功能 来源 https://blog.csdn.net/ithomer/article/details/7310008 Java基本数据类型int     32b ...

  6. Java实现发邮件功能---网易邮箱

    目录 Java实现发邮件功能 前言 开发环境 代码 效果 结束语 Java实现发邮件功能 前言 电子邮件的应用场景非常广泛,例如新用户加入,即时发送优惠清单.通过邮件找回密码.监听后台程序,出现异常自 ...

  7. Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比

    Java文件操作API功能与Windows DOS命令和Linux Shell 命令类比: Unix/Linux (Bash) Windows(MS-DOS) Java 进入目录 cd cd - 创建 ...

  8. ElasticSearch7.3学习(三十)----ES7.X SQL新特性解析及使用Java api实现sql功能

    一.ES7 sql新特性 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 四个字段 PUT /tvs PUT /tvs/_mapping { "properties&quo ...

  9. 微软发布独立Android模拟器 为开发者提供测试

    微软发布了 Visual Studio 2015 正式版,除了免费的社交版之外,另外也有付费的专业版.这套工具除了提供 Windows 应用程序的整合环境之外,你也可以利用它来开发 Android 程 ...

随机推荐

  1. 学点HTTP知识

    不学无术 又一次感觉到不学无术,被人一问Http知识尽然一点也没答上来,丢人丢到家了啊.平时也看许多的技术文章,为什么到了关键时刻就答不上来呢? 确实发现一个问题,光看是没有用的,需要实践.看别人说的 ...

  2. Python标准模块--Iterators和Generators

    1 模块简介 当你开始使用Python编程时,你或许已经使用了iterators(迭代器)和generators(生成器),你当时可能并没有意识到.在本篇博文中,我们将会学习迭代器和生成器是什么.当然 ...

  3. warensoft unity3d 更新说明

    warensoft unity3d 组件的Alpha版本已经发布了将近一年,很多网友发送了改进的Email,感谢大家的支持. Warensoft Unity3D组件将继续更新,将改进的功能如下: 1. ...

  4. python与c互相调用

    虽然python开发效率很高,但作为脚本语言,其性能不高,所以为了兼顾开发效率和性能,通常把性能要求高的模块用c或c++来实现或者在c或c++中运行python脚本来处理逻辑,前者通常是python中 ...

  5. SDWebImage源码解读之SDWebImageCache(上)

    第五篇 前言 本篇主要讲解图片缓存类的知识,虽然只涉及了图片方面的缓存的设计,但思想同样适用于别的方面的设计.在架构上来说,缓存算是存储设计的一部分.我们把各种不同的存储内容按照功能进行切割后,图片缓 ...

  6. C++随笔:.NET CoreCLR之GC探索(1)

    一直是.NET程序员,但是.NET的核心其实还是C++,所以我准备花 一点时间来研究CoreCLR和CoreFX.希望这个系列的文章能给大家带来 帮助. GC的代码有很多很多,而且结构层次对于一个初学 ...

  7. bzoj3208--记忆化搜索

    题目大意: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目.    我们可以把风景区看作一个n*n的地图,每个点有它的初始高度,滑雪只能从高处往低处滑[严格大于] ...

  8. 吸顶大法 -- UWP中的工具栏吸顶的实现方式之一

    如果一个页面中有很长的列表/内容,很多应用都会在用户向下滚动时隐藏页面的头,给用户留出更多的阅读空间,同时提供一个方便的吸顶工具栏,比如淘宝中的店铺页面. 下面是一个比较简单的实现,如果有同学有更好的 ...

  9. Windows10自适应和交互式toast通知[1]

    阅读目录: 概述 toast通知的结构 视觉区域(Visual) 行为(Actions) 特定场景下的Toast通知 带多内容的通知 带行为的通知(例子1) 带行为的通知(例子2) 带文本输入框和行为 ...

  10. Windbg Extension NetExt 使用指南 【2】 ---- NetExt 的基本命令介绍

    摘要 : 本章节介绍NetExt常用的命令. 并且对SOS进行一些对比. NetExt的帮助 要想玩好NetExt, 入门就得看帮助. 看NetExt的帮助可以调用!whelp 命令. 这样hi列举出 ...