jdk1.8新特性

jdk1.8新特性知识点:
一、特殊的(函数式)接口
学习需知:
1.类的二个要素是什么?

属性和方法 属性三要素:(修饰符)类型,名字,值; 方法五要素:修饰符,返回值,方法名,形参(不是实际存在的变量),方法体;

2.接口:

接口是一个抽象的类 接口中的方法全部都是抽象的 接口可以有多个父接口 接口没有初始化块
接口类里的属性默认有修饰语publicstaticfinal 接口中的属性全部都是public static final
jdk1.8新特性: 在接口中的方法可以有方法体

3.什么是函数式接口?

简单来说就是只定义了一个抽象方法的接口(Object类的public方法除外),就是函数式接口,并且还提供了注解:@FunctionalInterface。

注意:该注解只能标在"有且仅有一个抽象方法"的接口上,如下
pacckge jdk.demo;
	@FunctionalInterface
	public interface TestInterface{
   
		public void add();
	}

3.特殊的接口和方法的调用

(1)特殊的接口——接口里有方法体
(2)可以使用::调用方法。

//构造方法引用使用方式:Class::new
look l=look.book(look::new);
//静态方法引用使用方式:Class::staticMethod
test.operate(1, 2, Test::add);
//对象的实例方法引用
test.operate(1, 2, test::sub);
//、类的实例方法引用;先满足实例方法,而非静态方法;Lambda表达式的第一个参数将成为调用实例的对象。
test.test(Test::testM);

二、什么是lambda表达式?

1.lambda表达式的特点是语法超级简洁,如下

//我们知道,对于一个Java变量,我们可以赋给其一个“值”。
int a=1;
String a="hello";
//如果你想把“一块代码”赋给一个Java变量,应该怎么做呢?
//比如我要把如下代码赋给一个叫b的java变量
public void m(String a){
   
	System.out.println(s);
	}
//在java 8之前,这个是做不到的。但是Java 8问世之后,利用Lambda特性,就可以做到了
b=public void m(String a){
   
	System.out.println(s);
	}
//但是这样并不是一个简洁的写法,我们为了简洁可以移除一些没有用的声明。如:
b=public void m(String a){
   
	System.out.println(s);
	}
//的最简洁样式为
b=(a)→System.out.println(s);
/*原因:public 是多余的;函数名字是多余的,因为已经赋给了b;编译器可以自己判断返回类型和参数类型是什么
如果只有一行输出语句可以不要大括号,在参数和函数之间加上一个箭头符号
*/
//这样,我们就成功的非常优雅的把“一块代码”赋给了一个变量。而“这块代码”,或者说“这个被赋给一个变量的函数”,就是一个Lambda表达式。

2.匿名类:

(1)目标方法的参数得是一个接口; (2)方法的参数里面直接new后面跟上接口名 (3)必须马上写类体,重写方法体

3.lambda表达式的先决条件

(1)目标方法的参数是一个接口
(2)接口中只有一个抽象方法,这个抽象方法不是Object里面的方法
(3)接口最好顶一个注解:@FunctionalInterface

三、Stream
Stream概述
Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。

特点:

    1 . 不是数据结构,不会保存数据。

    2. 不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。(保留意见:毕竟peek方法可以修改流中元素)

    3. 惰性求值,流在中间处理过程中,只是对操作进行了记录,并不会立即执行,需要等到执行终止操作的时候才会进行实际的计算。

1.Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。
2.Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值