`

Java系列 – 用Java8新特性进行Java开发太爽了(续)

阅读更多

本人博客文章网址:https://www.peretang.com/using-java8s-new-features-to-coding-is-awesome-2/


前言

上周, 我们谈论了关于Java8的新特性有那些, 什么是函数式编程, 什么是Lambda表达式, 这周让我们继续谈论这些新特性.

本周, 我们会聊一下什么是Stream API, 以及什么是Optional.

 

Stream API你让我想重写我以前的所有代码

"Stream API你让我想重写我以前的所有代码", 为什么我会说出这样的一句话呢, 因为当你使用了Stream API之后, 以前可能需要一个以及多个for循环或for-each循环才能完成的工作现在只需要一行就完成了.

以前对集合类型进行多线程操作可能需要注意很多地方, 但是现在你需要打开一个开关, 就可以令你对集合类型的操作的效率提升了许多倍.

以前可能还要顾及许多地方, 现在你只需要关注你要实现的逻辑, 剩余的就交给Java8本身吧.

以前可能你要说明是如何操作的, 代码阅读性也不高, 现在你的代码能直接让人"看的懂"而不需要任何注释.

 

使用了Optional让你的应用从此不再发生空指针异常

Optional, 是一个泛型类, 表示这个对象是否存在, 可使用API来判断是否为空.

引用Java8 In Action--"

使用Optional会迫使你更积极地解引用Optional对象,以应对变量值缺失的问题, 最终, 你能更有效地防止代码中出现不期而至的空指针异常.

使用Optional能帮助你设计更好的API, 用户只需要阅读方法签名, 就能了解该方法是否接受一个 Optional 类型的值."

 

以上就是我使用Java8一段时间得出的心的, 个人观点仅供参考.

Pere Tang. 0am on July 15, 2017

0
0
分享到:
评论

相关推荐

    Java - Spring-IoC(Inverse of Control)–> 控制反转

    Spring是一个轻量级Java开发框架(最早由Rod Johnson创建),为Java应用程序提供全面的基础架构支持。 Spring最根本的使命是解决企业级应用开发的复杂性,简化Java开发。 2. Spring两个核心特性 ① IoC(Inverse of ...

    java文档

    Comparator接口,Eclipse – 整合开发工具(基础篇),ejb环境,Java 理论与实践: 哈希,Java接口和Java抽象类,weblogic 服务器管理,JSP中基于Session的在线用户统计分析,Java语言编码规范-1.01,JDK5新特性.......

    jdk1.8版本的安装包

    版本:jdk1.8 适用于java开发的jar包 jdk1.8新特性 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可。 新增lambda表达式 提供函数式接口 Java 8 允许你使用关键字来传递方法或者构造...

    JavaEE 6 Servlet 3.0 中的新特性

    JavaEE 6Servlet 3.0 中的新特性 • 易于开发和部署 • 模块化web.xml • 动态配置 • 异步Servlet • Servlet 3.0 — 易于开发 – 主要关注点 • 增强了API 以便使用SE 5 中新的语言特性 – 例如:批注、泛型...

    高级java笔试题-itresource:程序开发技术资源集合

    新特性讲解系列文章 ] () [ Java 从Jar文件中动态加载类 ] () [ Java并发源码分析 - ThreadPoolExecutor ] () [ java ClassLoader 基本原理 ] () [ 解决eclipse显示jar源代码中文乱码问题 ] () [ 使用 RMI + ...

    java7hashmap源码-Java-:Java-

    相对于java7,Java8的新特性如下: 接口的默认方法;Java 8允许给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法。 Lambda 表达式;eg:接受2个参数(数字),并返回他们的差值...

    ServletEx2 1.0 Java WEB 应用开发框架 完整版 (release, source, document, example 2010-01-13)

    在长期的B/S结构应用开发,Java平台上的应用开发基础上,对应用开发渐渐形成了一个自己的技术框架, 基本上每过两个项目,都会对框架进行一次比较大的升级。 最近一年来,这个框架基本不再作大的变动了,于是我将之...

    JDK1.8(32位和64位)正式版+JDK1.8API帮助文档

    jdk1.8新特性详解:(http://www.oschina.net/translate/everything-about-java-8) JDK包含的基本组件包括: javac – 编译器,将源程序转成字节码 jar – 打包工具,将相关的类文件打包成一个文件 javadoc – ...

    Eclipse – 整合开发工具(基础篇)

    Eclipse – 整合开发工具(基础篇) 平台特性 java程序开发 排错 重构 要诀与技巧

    Java语言基础-类的继承

    Java语言的三大特性之一 继承的特点 通过继承,在已有类型基础之上进行扩充或改造,得到新的数据类型。 已有的数据类型称为父类或者超类。 得到的新数据类型,称为子类或派生类。 类的继承提高了程序代码的重用性...

    Java面试复习–基础知识篇

    Java基础知识 本文学习自GitHub上的JavaGuide项目,感谢大佬的资源,此处为自我学习与整理,原项目链接 JavaGuide 面向对象和面向过程的区别 面向过程: 比面向对象性能更高,类调用的时候需要实例化,开销大,消耗...

    Eclipse下的可视化界面设计WindowBuilder插件所有版本打包

    具备SWT/JFACE开发、Swing开发及GWT 开发三大功能,是一款不可多得的Java体系中的WYSIWYG工具。 WindowBuilder的主要用户界面构建为: Design View – the main visual layout area. Source View – write code and...

    Jetty中文手册

    如何使用Jetty进行开发 如何编写Jetty中的Handlers 使用构建工具 如何在Maven中使用Jetty 如何在Ant中使用Jetty Maven和Ant的更多支持 Jetty Maven插件(Plugin) Jetty Jspc Maven插件(Plugin) Maven web应用工程...

    Java-PHP-C#

    简单化一点, 我们可以用 eregi()取代 ereg().eregi()对大小写不敏感, 我们就不需要指定两个范围 "a-z" 和 "A-Z" – 只需要指定一个就可以了: ^[_a-z0-9-]+(\.[_a-z0-9-]+)*$ 后面的服务器名字也是一样,但要去掉...

    (java se 代码)Bank Account Management System 银行账户管理子系统

    ATM 7:Swing GUI开发 第一步部分:为ATM项目添加用户客户端操作界面 需要以下几个类: 1) ATMClient: 其中会包含一个Frame,这是用户主界面. 2) MainPanel:主界面,用户可以选择开户或者登录 3) RegisterPanel:用户...

    打造专业开发者指南:针对ShardingProxy分库分表解决策略的深度剖析 – 详解部署、使用、服务治理与优化技巧

    目前市面上的技术解决方案众多,但是ShardingProxy作为一个前沿的分库分表技术,其特性及应用更受业内人士及Java开发者的青睐。本文首先深入讲解了ShardingProxy的部署和使用,比如映射设置,数据库代理服务部署,...

    Objective-C基础教程(第2版)

    书中以苹果最新的Xcode 4.x工具为基础,详细讲述了Objective–C的全部基础知识,涵盖了块、GCD、ARC、类扩展、继承、组合、对象初始化、分类、协议、内存管理和组织源文件等新主题,介绍了如何用UIKit构建用户界面。...

    JSP开发入门(三)–JSP与JavaBean

    虽然你可以在小型指令文件里放入一大块的程序代码,但是大多数的Java程序代码是属于可以重复使用的组件,称为JavaBean。JavaBean就跟ActiveX控件一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。...

    Objective-C 基础教程(Amazon超级畅销书)英文版:Learn Objective-C on the Mac (Learn Series)

    Whether you’re an experienced C programmer or you’re coming from a different language such as C++ or Java, leading Mac experts Mark Dalrymple and Scott Knaster show you how to harness the powers of ...

Global site tag (gtag.js) - Google Analytics