栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java基础--java8新特性

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java基础--java8新特性

java8新特性 java8概述

java8(又称JDK1.8)是java语言开发的一个主要版本。
支持Lambda表达式。
函数式接口。
新的Stream API
新的日期API
其他特性

Lambda表达式

Lambda表达式:特殊的匿名内部类,语法更简洁。
Lambda表达式允许把函数作为一个方法的参数(函数作为方法参数传递),将代码像数据一样传递。
基本语法
<函数式接口><变量名>={参数1,参数2...}->{ //方法体 };
Lambda引入了新的操作符:->(箭头操作符),->将表达式分成两部分。左侧:(参数1,参数2…)表示参数列表。右侧:{}内部是方法体。
注意事项:

  1. 形参列表的数据类型会自动推断
  2. 如果形参列表为空,只需保留()
  3. 如果形参只有1个,()可以省略,只需要参数的名称即可。
  4. 如果执行语句只有一句,且无返回值,{}可以省略,若有返回值,则若想省去{},则必须同时省略return,且执行语句也保证只有一句。
  5. Lambda不会生成一个单独的内部类文件。
函数式接口

如果一个接口只有一个抽象方法,则该接口称之为函数式接口,函数式接口可以用Lambda表达式,Lambda表达式会被匹配到这个抽象方法上。
@FunctionalInterface注解检测接口是否符合函数式接口。
常见函数式接口

函数式接口参数类型返回类型说明
Consumer消费型接口Tvoidvoid accept(T t); 对类型为T的对象应用操作
Supplier 供给型接口TT get(); 返回类型为T的对象
Function 函数型接口TRR apply(T t);对类型为T的对象应用操作,并返回类型为R类型的对象
Predicate 断言型接口Tbooleanboolean test(T t); 确定类型为T的对象是否满足条件,并返回boolean类型
方法引用

方法引用时Lambda表达式的一种简写形式。如果Lambda表达式方法体中只是调用一个特定的已经存在的方法,则可以使用方法引用。
常见形式:

  1. 对象::实例方法
  2. 类::静态方法
  3. 类::实例方法
  4. 类::new
Stream API 什么是Stream

流(Stream)中保存对集合或数组数据的操作。和集合类似,但集合中保存的是数据。

Stream特点

Stream自己不会存储元素
Stream不会改变源对象。相反,他们会返回一个持有结果的新Stream。
Stream操作是延迟执行的。这意味着他们会等到需要结果的时候才执行。

Stream使用步骤

创建:新建一个流
中间操作:在一个或多个步骤中,将初始化Stream转化到另一个Stream的中间操作
终止操作:使用一个终止操作来产生一个结果。该操作会强制它之前的延迟操作立即执行。在这之后,该Stream就不能使用 了。

创建Stream
  1. 通过Collection对象的stream()或parallelStream()方法
  2. 通过Arrays类的stream()方法
  3. 通过Stream接口的of()、iterate()、generate()方法
  4. 通过IntStream、LongStream、DoubleStream接口中的of、range、rangeClosed方法
中间操作、终止操作

中间操作
filter、limit、skip、distinct、sorted
map
parallel
终止操作
forEach、min、max、count
reduce、collect

新时间API

之前时间API存在问题:线程安全问题、设计混乱
本地化日期时间API:
LocalDate
LocalTime
LocalDateTime
Instant:时间戳
ZoneId:时区
Date、Instanf、LocalDateTime的转换
DateTimeFormatter:格式化类

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/351290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号