java8的新特性1

1、lambda表达式

2、函数式接口

3、StreamAPI

4、方法的引用与构造器的引用

5、接口中的默认方法与静态方法

6、新时间日期API

7、其他新特性

简介

java8的新特性

1、速度更快(内存结构、垃圾回收、并行拓展)

2、代码更少(新增新的语法lambda表达式)

3、强大的streamApI

4、便于并行

5、最大化减少空指针异常,optional

lambda表达式

首先:lambda表达式是一个匿名函数,我们可以把lambda表达式理解为一段可以传递的代码(将代码像数据一样传递)

例:Comparable<Integer> com=(x,y)->Integer.compare(x,y);

emplayees.stream().filter(e->e.getSalary()>=5000).foreach(System.out::println).limit(2);

lambda表达式的基础语法,java8引入了一个新的操作->箭头操作符将lambda表达式分为俩部分

左侧:lamdba表达式参数列表

右侧:lambda表达式所需执行的功能即lambda表达体

语法格式1、无参数、无返回值。

()->功能,lambda体

语法格式2、有一个参数、无返回值

(x)->功能,lambda体

语法格式3、有一个参数没有返回值,括号可以不写

x->功能lambda体

语法格式4、有俩个以上的参数、并且lambda有多条语句,有返回值

(x.y)->{lambda体}

语法格式5、若只有一条语句、return和{}可不写

(x,y)->lambda体

语法格式6:lambda表达式的参数的数据类型可以省略不写,因为jvm编译器通过上下文推断出数据类型,即类型推断

(Integer x,Integer y)->lambda体

lambda表达式需要函数式接口的支持

函数式接口:接口中只有一个抽象方法,可以使用注解@FunctionInterface修饰,可以检查是否是函数式接口。

原文地址:https://www.cnblogs.com/lqh969696/p/10997803.html

时间: 2024-10-10 09:12:31

java8的新特性1的相关文章

简单了解JAVA8的新特性

JAVA8新特性会颠覆整个JAVA程序员的编程习惯 甚至如果您坚守JAVA7之前的编程习惯,今后你看比较年轻的程序员写的JAVA代码都会无法理解 所以为了保证不脱钩,我觉得有必要学习JAVA8的新特性,况且,这会极大得提高CPU效率和编码效率 我们来简单了解一下JAVA8的新特性 我觉得主要有两个比较重要的,一是Lambda表达式,二是集合类的stream操作 关于这两点,我写了几个小DEMO,附上注释,应该能够迅速掌握 如果大家好奇更多的JAVA8新特性,请自行阅读更加专业的知识,敏捷开发不求

java8的新特性以及用法简介

1. 介绍 2 接口的默认方法 2 lambda表达式 2.1 函数式接口 2.2 方法与构造函数引用 2.3 访问局部变量 2.4 访问对象字段与静态变量 3. 内建函数式接口 3.1 Predicate接口 3.2 Function 接口 3.3 Supplier 接口 3.4 Consumer 接口 3.5 Comparator 接口 3.6 Optional 接口 3.7 Stream 接口 3.7.1 Filter过滤 3.7.2 Sort 排序 3.7.3 Map 映射 3.7.4

Java8部分新特性的学习

Java8中的新特性 一.Lambda表达式 Lambda表达式可以理解为一种可传递的匿名函数:它没有名称,但又参数列表.函数主体.返回类型,可能还有一个可以抛出的异常列表. 匿名:和匿名类类似的,它没有明确的名字 函数:Lambda函数不属于某个特定的类,但和方法一样都具有参数列表.函数主体.返回类型,还可以有抛出的异常列表 传递:Lambda表达式可以作为参数传递给方法或者存储在变量中. Lambda表达式的基本形式: (parameters)-> expression 或(paramete

java5、java6、java7、java8的新特性

Java5: 1.泛型 Generics:        引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处. Parameterized Type作为参数和返回值,Generic是vararg.annotation.enumeration.collection的基石. A.类型安全 抛弃List.Map,使用List<T>.Map<K,V>给它们添加元素或者使用Iterator<T>遍历时,编译期就可以给你检查出类型错误 B

Java8的新特性

Java 8主要新特性包括如下几点: 一.接口的默认方法和静态方法 Java 8版之前,接口只有抽象方法,而在Java 8,为接口新增了两种类型的方法. 第一种是默认方法:在Java 8中,可以通过使用default关键字来添加默认的方法实现. 接口的实现类可以直接使用这些默认的方法,同时还可以重写默认的方法,这不是强制性的重写. package demo.ch; public interface Java8InterfaceDemo { abstract void add(); default

Java8的新特性,二进制序列转十进制数字

package kata_007_二进制序列转十进制int; /** * java8 Lambda表达式转换binary序列->十进制数 */ import java.util.ArrayList; public class ShortBinaryToDecimal { public static void main(String[] args) { ArrayList<Integer> binary = new ArrayList(); binary.add(1); binary.ad

java8 常用新特性

1.Lambda 表达式 (把代码当作参数) //定义了操作接口public interface GreetingService {void sayMessage(String message);}//声明接口的具体操作GreetingService greetService1 = message -> System.out.println("Hello " + message);//调用接口,使用功能greetService1.sayMessage("java&quo

Java8新特性小结-接口与Lambda表达式

Java8的新特性相对于前版本(Java7)来说,主要体现在两个方面: 1.   接口定义与使用 2.   Lambda表达式对匿名内部类的简化使用. Java8新特性的具体表现如下: 1.在接口中的体现 (1)在接口中可以定义实体方法,但除原先的抽象方法外只能定义两种方法: A.公共的静态方法 如: package com.jasberyon.java8.interfacer; public interface InterfaceA { public static void sayHi(){

Android 使用Java8新特性之Lambda expression

前言 Lambda expression,java8的新特性.使用Lambda expression,可以替代只有一个函数的接口实现,告别匿名内部类,代码看起来更简洁易懂. java8还有其它一些新特性,不过在android上可能都无法使用. studio 2.x后 支持jack编译器,使用它,能使用java8的Lambda expression,但其它特性也不敢保证就能用. 注:Android SDK中集成了JDK的一些源码,有些原生JDK中的类,可能增加了新特性的一些实现,但Android中