Java8新特性整理
文章平均质量分 80
JDK1.8是Oracle在2014年3月18日发布正式版的,到现在差不多接近四年了,最近公司新项目都使用JDK1.8来开发了。
这里总结下JDK1.8中常用的特性,部分内容整理自《Java 8 In Action》 并加上自己的理解,如有出入欢迎批评指正(✪ω✪)
一大三千
一入IT深似海,且行且编码!
展开
-
Java8新特性整理之Lambda表达式(一)
前言JDK1.8是Oracle在2014年3月19日发布正式版的,到现在差不多接近四年了,最近公司新项目都使用JDK1.8来开发了。这里总结下JDK8中常用的特性,部分内容整理自《Java 8 In Action》 并加上自己的理解,如有出入欢迎批评指正(✪ω✪)Lambda表达式语法(parameters) -> expression或(parameters)原创 2018-02-05 14:12:56 · 656 阅读 · 0 评论 -
Java8新特性整理之方法引用(二)
方法引用语法目标引用 ::方法的名称例子截取字符串的Lambda表达式(str, i) -> str.substring(i) 等效的方法引用String::substring 方法引用让你可以重复使用现有的方法定义,并像Lambda一样传递它们.构建方法引用方法引用主要有三类: - 指向静态方法的方法引用(例如Integer的pa原创 2018-02-06 10:09:37 · 632 阅读 · 0 评论 -
Java8新特性整理之流的介绍与使用(三)
流是什么官方定义:支持顺序和并行聚合操作的元素序列。这里有几个关键词,顺序、并行、聚合、元素序列。所谓顺序就是单线程顺序执行,并行就是多线程分解执行,聚合就是将顺序或并行执行的结果计算后得出最终结果,元素序列则是将数据源(数组,文件,集合等)流化后的数据结构。流与集合上面说的还是有些不明朗,下面结合Java中的集合(Collection)来进一步解释流。Java现有的集原创 2018-02-07 15:33:48 · 608 阅读 · 0 评论 -
Java8新特性整理之构建流的方式(四)
流的创建方式由值创建流你可以使用静态方法Stream.of,通过显式值创建一个流。它可以接受任意数量的参数。Stream<String> stream = Stream.of("Java 8 ", "Lambdas ", "In ", "Action"); stream.map(String::toUpperCase).forEach(System.out::pr...原创 2018-02-08 13:43:24 · 448 阅读 · 0 评论 -
Java8新特性整理之接口的默认方法(五)
默认方法默认方法由default修饰符修饰,并像类中声明的其他方法一样包含方法体。比如,你可以像下面这样在集合库中定义一个名为 Sized的接口,在其中定义一个抽象方法size,以及一个默认方法isEmpty:public interface Sized { int size(); default boolean isEmpty() { r...原创 2018-02-11 09:14:58 · 539 阅读 · 0 评论 -
Java8新特性整理之Optional取代Null引用(六)
java8之前如何避免空指针异常相信大家在开发中都会碰到NullPointerException 空指针异常导致程序停止的情况。下面就来谈谈在java8之前如何避免空指针异常。一个拥有汽车及汽车保险的客户。Person.javapublic class Person { private Car car; public Car getCar() { ret...原创 2018-02-12 11:53:47 · 1234 阅读 · 0 评论 -
Java8新特性整理之CompletableFuture:组合式、异步编程(七)
使用CompletableFuture构建异步应用Future 接口的局限性Future接口可以构建异步应用,但依然有其局限性。它很难直接表述多个Future 结果之间的依赖性。实际开发中,我们经常需要达成以下目的:将两个异步计算合并为一个——这两个异步计算之间相互独立,同时第二个又依赖于第一个的结果。等待 Future 集合中的所有任务都完成。仅等待 Future集合中最快...原创 2018-02-13 09:10:08 · 68126 阅读 · 15 评论 -
Java8新特性整理之新的时间和日期API(终章)
前言Java8之前我们使用Date和Calendar这两个类处理时间,但有的特性只在某一个类有提供,比如用 于以语言无关的方式格式化和解析日期或时间的DateFormat方法就只在Date类里有。DateFormat方法也有它自己的问题。比如,它不是线程安全的。这意味着两个线程如果尝试使用同一个formatter解析日期,你可能会得到无法预期的结果。最后,Date和Calendar类...原创 2018-02-22 10:30:57 · 4777 阅读 · 0 评论