JDK8新特性

lambda表达式

lambda 特殊的匿名内部类,语法更简洁。允许把函数作为一个方法的参数进行传递。

基本语法 <函数式接口><变量名>=(参数1,参数2..)->{方法体}

形参列表的数据类型会自动推断;如果形参列表为空,只需保留();如果形参只有一个,()可以省略,只需要参数的名称即可;如果执行语句只有一句且无返回值,可以省略{},若有返回值想省去{},需同时省略return,且执行语句也保证只有一句。

lambda不会生成一个单独的内部类文件(匿名内部类会生成)。

方法引用

函数式接口参数类型返回类型说明

Consumer<T>消费型接口Tvoidvoid accept(T t);对类型为T的对象应用操作

Supplier<T>供给行接口无TT get();返回类型为T的对象

Function<T,R>函数型接口TRR apply(T,t);对类型为T的对象应用操作,并返回类型为R类型的对象

Predcate<T>断言型接口Tbooleanboolean test(T,t);确定类型为T的对象是否满足条件,并返回boolean类型。

@FunctionalInterface函数式接口-(一个接口只有一个抽象方法)

函数式接口才可以使用Lambda表达式,lambda表达式会被匹配到这个抽象方法上。

Stream-流中保存对集合或数组数据的操作。和集合类似,但集合中保存的时候数据。

Stream自身不会存储元素

不会改变源对象。相反,他们会返回一个持有结果的新的stream

stream的操作是延迟执行的。意味着他们会等需要结果的时候才执行

新时间API(DateTimeFormatter线程安全)

之前的时间API存在问题:线程安全问题(SimpleDateFormat线程不安全)丶设计混乱

本地化日期时间 API

LocalDate

LocalTime

LocalDateTime 

Instant:时间戳 (1970-now 的毫秒数)

ZoneId:时区

Date,Instant, LocalDateTime的转换

Date->Instant->LocalDateTime  date.toInstant();  LocalDateTime.ofInstant

LocalDateTime->Instant->Date 

localDateTime.atZone(ZoneId.systemDefault()).toInstant

Date.from()

DateTimeFormatter:格式化类

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容

  • 一、Lambda表达式二、方法调用(双冒号)的用法三、Stream函数式操作流元素集合四 、接口新增:默认方法与静...
    yannhuang阅读 4,189评论 0 0
  • 微信搜「烟雨星空」,白嫖更多好文。 现在 Oracle 官方每隔半年就会出一个 JDK 新版本。按时间来算的话,这...
    烟雨星空阅读 5,072评论 2 4
  • 阅读原文 Chapter 14 . JDK8新特性 14.1 Lambda 表达式 Lambda 是一个匿名函数,...
    GeekGray阅读 4,571评论 0 10
  • Jdk8相对之前的jdk加入了很多的新特性。 1:jdk中加入了default关键字。 在java里面,我们通常都...
    尘埃里的玄阅读 3,935评论 0 0
  • 官方新特性说明地址 下面对几个常用的特性做下重点说明。 一、Lambda表达式 1.1 函数式编程 百科介绍:h...
    丘八老爷阅读 4,525评论 0 6