java 8 lambda函数
1 为什么要引进lambda函数
可以简化编码,将事情更多的交给编译器,让编译器帮我们推断我们写的代码的完整形式。
2 lambda函数的语法
2.1 ->
(arg1, arg2) -> {函数体}
lambda表达式本质上是函数的一种简写,直接给出函数的参数和函数体即可,不用再写函数名。
记住lambda函数也是有返回值的。
表达式:
(str, from, end) -> str.subString(from, end)
语句块:
new Thread(() -> {
//do something...
}).start();
2.2 ::
_strategy::produce
3 表达式类型的推断
根据其被赋值的对象的类型。
比如
new Thread(() -> {
//do something...
}).start();
那么这个lambda表达式就是一个Runnable对象了。
4 用lambda函数实现Runnable
java 8之前:
new Thread(new Runnable() {
@Override
public void run() {
System.out.println("Before java 8, too much code for too little to do");
}
}).start();
java 8:
new Thread(() -> System.out.println(in java 8, lambda make things simplier)).start();
5 lambda函数可以直接代替接口
在需要传入接口对象的地方直接用lambda函数,可以节省很多的代码。
6 lambda函数的作用域
lambda表达式内的变量和外部环境的变量语义一样,比如this,在lambda表达式内外都是指的一个对象,也就是说,把lambda表达式当成是类的内部的一部分就可以了。
java 8 lambda函数的更多相关文章
- 02、Java的lambda表达式和JavaScript的箭头函数
前言 在JDK8和ES6的语言发展中,在Java的lambda表达式和JavaScript的箭头函数这两者有着千丝万缕的联系:本次试图通过这篇文章弄懂上面的两个"语法糖". 简介 ...
- 深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-language- ...
- [转]深入理解Java 8 Lambda(类库篇——Streams API,Collectors和并行)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- [转]深入理解Java 8 Lambda(语言篇——lambda,方法引用,目标类型和默认方法)
以下内容转自: 作者:Lucida 微博:@peng_gong 豆瓣:@figure9 原文链接:http://zh.lucida.me/blog/java-8-lambdas-insideout-l ...
- Java 8 Lambda表达式
Java 8 Lambda表达式探险 http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html 为 ...
- 深入浅出 Java 8 Lambda 表达式
摘要:此篇文章主要介绍 Java8 Lambda 表达式产生的背景和用法,以及 Lambda 表达式与匿名类的不同等.本文系 OneAPM 工程师编译整理. Java 是一流的面向对象语言,除了部分简 ...
- Java 8 Lambda表达式10个示例【存】
PS:不能完全参考文章的代码,请参考这个文件http://files.cnblogs.com/files/AIThink/Test01.zip 在Java 8之前,如果想将行为传入函数,仅有的选择就是 ...
- Java 8 Lambda 表达式
Lambda 是啥玩意 简单来说,Lambda 就是一个匿名的方法,就这样,没啥特别的.它采用一种非常简洁的方式来定义方法.当你想传递可复用的方法片段时,匿名方法非常有用.例如,将一个方法传递给另外一 ...
- Java 8 lambda表达式示例
例1.用lambda表达式实现Runnable 我开始使用Java 8时,首先做的就是使用lambda表达式替换匿名类,而实现Runnable接口是匿名类的最好示例.看一下Java 8之前的runna ...
随机推荐
- linq中如何合并多个predicate条件
最近在做一个webAPI 的时候遇到一个需要合并多个predicate条件的问题,下面就是对题的情况.为了方便交流我对case进行了简化,请先看如下代码: using System.Collectio ...
- php网络编程实例
php网络编程实例 一.总结 一句话总结: socket_create():创建socket socket_bind():绑定IP和端口 socket_listen():监听客户端信息 <?ph ...
- switch type 类型判断
golang 语言中 也有 类是 javascript 的 typeof 判断类型的 方法 比如 func (a interface{}){ //第一种 if inst,ok:=a.(TypeA);o ...
- Java-Class-E:org.springframework.http.HttpStatus
ylbtech-Java-Class-E:org.springframework.http.HttpStatus 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 1. /* * C ...
- 【Java多线程系列三】实现线程同步的方法
两种实现线程同步的方法 方法 特性 synchronized 不需要显式的加锁,易实现 ReentrantLock 需要显式地加解锁,灵活性更好,性能更优秀,结合Condition可实现多种条件锁 ...
- fabs() abs()
fabs() 面向实数取绝对值 abs() 返回int
- 令人清爽的异步函数async、await
1.什么是async.await? async用于声明一个函数是异步的.而await从字面意思上是"等待"的意思,就是用于等待异步完成.并且await只能在async函数中使用; ...
- Windows性能监控perfmon工具的使用和性能指标的分析
Windows性能监控工具perfmon的使用和性能指标分析 一.perfmon提供图表化的实时的性能监视器.性能日志.警报管理,能监控CPU的使用率.内存使用率.磁盘I/O(磁盘的读写速度).网络I ...
- 尝试修改源码需要用到git存一下
git reflog查看本地记录 git reset --hard 02a3260
- 二.Python基础语法和数据类型
Python第二节 基础语法和数据类型 Python编码 python3默认情况下源码文件以UTF-8编码, 字符串均为unicode字符串.同时也可以通过# -*- coding: cp-1252 ...