码迷,mamicode.com
首页 > 编程语言 > 详细

java8

时间:2018-11-30 13:50:02      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:ssi   acl   may   function   ali   action   target   使用   ora   

官方文档:

https://www.oracle.com/technetwork/cn/java/javase/8-whats-new-2157071-zhs.html

一、lambda

其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能

lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)

Lambda表达式的语法
基本语法:
(parameters) -> expression

(parameters) ->{ statements; }

举个例子

// 1. 不需要参数,返回值为 5  
() -> 5  
  
// 2. 接收一个参数(数字类型),返回其2倍的值  
x -> 2 * x  
  
// 3. 接受2个参数(数字),并返回他们的差值  
(x, y) -> x – y  
  
// 4. 接收2个int型整数,返回他们的和  
(int x, int y) -> x + y  
  
// 5. 接受一个 string 对象,并在控制台打印,不返回任何值(看起来像是返回void)  
(String s) -> System.out.print(s)

函数式接口

函数式接口是只有一个方法的接口,用作lambda表达式的类型。可以使用注解 @FunctionalInterface 说明这个接口是一个函数式接口

举个例子

@FunctionalInterface
public interface Runnable {
 /**
 * When an object implementing interface <code>Runnable</code> is used
 * to create a thread, starting the thread causes the object‘s
 * <code>run</code> method to be called in that separately executing
 * thread.
 * <p>
 * The general contract of the method <code>run</code> is that it may
 * take any action whatsoever.
 *
 * @see java.lang.Thread#run()
 */
 public abstract void run();
}

 

new Thread(() -> System.out.println("java8 start !")).start();
Java8 内置的四大核心函数式接口
 

 

java8

标签:ssi   acl   may   function   ali   action   target   使用   ora   

原文地址:https://www.cnblogs.com/amei0/p/10043161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!