一、JAVA8学习笔记 Lambda表达式快速入门
2017-07-07 18:09
645 查看
第一节: 扯淡
学习java8中的Streams库一个目的就是采用最佳低级执行机制避免用synchronized编写代码。Java 8可以透明地把输入的不相关部分拿到几个CPU内核上去分别执行你的代码。Stream操作流水线——这是几乎免费的并行,用不着去费劲搞Thread了。
使用Java 8,你就是在保护你作为Java程序员的职业生涯^_^.
第二节: 函数式接口
函数式接口的概念:只定义一个抽象方法的接口
用函数式接口可以干什么呢? Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例,这个实例就是函数式接口一个具体实现。
举例说明:定义一个只有一个方法的接口,实现该接口打印字符串”Hello !”
第一步定义接口
第二步实现接口
第三部创建类的对象,调用对象方法
如果采用Lambda表达式则可以不用定义实现类,直接一行代码即可:
主要看操作符“->”请不要把它看成类似于C++里面的指针什么的,通俗讲它就是一个分割符,分割函数参数部分和函数体部分。整个“() -> System.out.println(“Hello !”)”这段代码其实就是接口ShowMsg的匿名类实例对象。
针对其他类别的抽象方法的处理如下:
(1)如果接口方法是:void printMSG(String msg);
则Lambda表达式:(msg) -> System.out.println(msg);
或者:msg -> System.out.println(msg); // 单个参数可以舍弃参数两边的”(”和”)”
(2)如果接口方法是:String printMSG( );
则Lambda表达式:() -> “Hello !”; // 这里无需 return 关键字
(3)如果函数体内语句多个则需要“{}”
Lambda表达式:() -> {String msg = “Hello !”; System.out.println(msg);};
学习java8中的Streams库一个目的就是采用最佳低级执行机制避免用synchronized编写代码。Java 8可以透明地把输入的不相关部分拿到几个CPU内核上去分别执行你的代码。Stream操作流水线——这是几乎免费的并行,用不着去费劲搞Thread了。
使用Java 8,你就是在保护你作为Java程序员的职业生涯^_^.
第二节: 函数式接口
函数式接口的概念:只定义一个抽象方法的接口
用函数式接口可以干什么呢? Lambda表达式允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例,这个实例就是函数式接口一个具体实现。
举例说明:定义一个只有一个方法的接口,实现该接口打印字符串”Hello !”
第一步定义接口
@FunctionalInterface // 作用类似于 @Overried 表示只能有一个接口 public interface ShowMsg { void printMSG(); }
第二步实现接口
public class ShowMsgHello implements ShowMsg { @Override public void printMSG() { System.out.println("Hello !"); } }
第三部创建类的对象,调用对象方法
public static void main(String[] args) { ShowMsg show = new ShowMsgHello(); show.printMSG(); }
如果采用Lambda表达式则可以不用定义实现类,直接一行代码即可:
public static void main(String[] args) { ShowMsg show = () -> System.out.println("Hello !"); show.printMSG(); }
主要看操作符“->”请不要把它看成类似于C++里面的指针什么的,通俗讲它就是一个分割符,分割函数参数部分和函数体部分。整个“() -> System.out.println(“Hello !”)”这段代码其实就是接口ShowMsg的匿名类实例对象。
针对其他类别的抽象方法的处理如下:
(1)如果接口方法是:void printMSG(String msg);
则Lambda表达式:(msg) -> System.out.println(msg);
或者:msg -> System.out.println(msg); // 单个参数可以舍弃参数两边的”(”和”)”
(2)如果接口方法是:String printMSG( );
则Lambda表达式:() -> “Hello !”; // 这里无需 return 关键字
(3)如果函数体内语句多个则需要“{}”
Lambda表达式:() -> {String msg = “Hello !”; System.out.println(msg);};
相关文章推荐
- java lambda表达式学习笔记
- java8新特性学习笔记(一) Lambda表达式
- java8学习笔记之lambda表达式
- Java8 学习笔记--函数式接口与lambda表达式的关系
- java lambda表达式学习笔记
- 【Java学习笔记之三十一】详解Java8 lambda表达式
- [学习笔记] Java核心技术 卷一:基础知识 接口、lambda表达式与内部类(三)
- java 从零开始,学习笔记之基础入门<正则表达式>(三十一)
- [原]java专业程序代写(qq:928900200),学习笔记之基础入门<正则表达式>(三十一)
- 30分钟入门Java8之lambda表达式学习
- java lambda表达式 闭包学习笔记
- Java Lambda 表达式学习笔记
- MongoDB快速入门学习笔记8 MongoDB的java驱动操作
- Java学习笔记-Lambda表达式及內建函数式接口
- Java8学习笔记 — 【Lambda表达式】
- Java8学习笔记(一)-初步认识Lambda表达式
- Java8学习笔记之Lambda表达式
- 快速入门Java中的Lambda表达式
- java学习笔记之java如何快速入门