Sean 的个人博客   >   标签墙   >   java8系列 标签

java8系列-06 时间相关API

2019-03-12

用过旧版java时间类库的都清楚,其实用起来的感觉是非常糟糕的。比如java.sql.Date与java.util.Date除了包名以外类名都是一样的。(sql.Date是继承util.Date重写的)这种设计其实是非常差的,很容易搞混淆。再比如,当你在并发情景下用java.util.Date是很容易出问题的,因为java.util.Date是属于线程不安全的。针对这些问题,java8推出了一系列新的API. PS: 新的时间相关API都在java.time.*包下

时间日期类

java8系列-05 Optional

2019-03-12

空指针异常我想是程序员见到比较多的异常啦,今天来探索的这个Optional工具类就是来处理这类问题的。用过Google Guava(后期应该会出一个系列,请持续关注)的都应该知道,Guava这套工具类库里面也有一个Optional,而且作用和今天来探索的这个java新特性是一样的。既然又是探索,那我们先打开idea,然后ctrl+鼠标左键进到optional的世界看一下吧。

源码片段

接下来我将逐行解释一下源码(像我这样给jdk源码这样加注释的怕是很少了^_^)

java8系列-04 Stream

2019-03-12

Stream英文直译为“流”,其实这里也是对文件流、集合流等各种流的操作。(虽然我们最常用在Collection集合中进行操作,但它的应用可是很广泛的)它是java8中最亮眼的特性之一,能极大的方便我们对于数据的操作,让程序员们能写出非常高效率又干净的代码。下面我们先看一个例子,从例子中进行初步认识,然后再带大家慢慢的来揭露它的神秘面纱。

Stream基础

先来感受一下Stream的神奇吧~

java8系列-03 方法的引用和注解新特性

2019-03-12

前面两篇讲了Lambdas表达式函数式接口。这一篇继续来讲java8的一些新特性 - 方法的引用和注解的新特性。

方法的引用

方法的引用可以使语言的构造更加简洁,减少冗余代码。可以直接引用已有Java类或对象(实例)的方法或构造器。与lambda联合使用。方法引用使用一对冒号 :: 。

下面用一个类来举例,来区分它所支持的四个不同的方法引用

java8系列-02 函数式接口(Function、Consumer、Predicate、Supplier)

2019-03-12

上一章已经说了函数式接口的基本概念(java8系列-01 Lambdas 表达式)。函数式接口(Functional Interface)说白了就是只包含了一个抽象方法的接口。下面来剖析一下最常用的四类函数式接口:

++提示:本章更多的用代码来叙述,不会更多的文字。++

Function功能型函数式接口

上一章有讲到,Function接口是接收一个T类型的参数,返回一个R类型的结果。

...

java8系列-01 Lambdas 表达式

2019-03-12

Lambdas表达式是java 8的一个最重要的新特性。它允许把函数作为一个方法的参数(在一个方法中用函数来作为方法传递进去)。或者把一段代码看成是数据。

Lambdas表达式实例

基本语法如下:

(parameters) -> experssion
或
(parameters) -> {statements;}

...