当前位置:   article > 正文

Java8(JDK1.8)新特性_java1.8新增特性

java1.8新增特性

一、Java8(JDK1.8)新特性

1、Lamdba表达式

2、函数式接口

3、方法引用和构造引用

4、Stream API

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

6、新时间日期API

7、OPtional

8、其他特性

二、java8(JDK1.8)新特性简介

1、速度快;

2、代码少、简介(新增特性:lamdba表达式);

3、强大的Stream API;

4、使用并行流和串行流;

5、最大化较少空指针异常Optional;

其中最为核心的是Lambda表达式和Stream API

三、java8(JDK1.8)新特性详细介绍

一、Lambda表达式

1、Lambda表达式是什么?

Lambda是一个匿名函数,我们可以将Lambda表达式理解为一段可以传递的代码(将代码像数据一样传递)。使用它可以写出简洁、灵活的代码。作为一种更紧凑的代码风格,使java语言表达能力得到提升。

2、从匿名类到Lambda转换

package com.chen.test.JAVA8Features;​import org.slf4j.Logger;import org.slf4j.LoggerFactory;​public class Demo01 {    private static Logger log = LoggerFactory.getLogger(Demo01.class);​    public static void main(String[] args) {        Runnable t1 =new Runnable(){            @Override            public void run(){                log.info("我是没有使用Lambda表达式:不简洁");            }        };                Runnable t2 = () -> log.info("我是使用Lambda表达式:简洁、灵活");                t1.run();        t2.run();            }}​
  • 1

Run result

19:43:39.303 [main] INFO com.chen.test.JAVA8Features.Demo01 - 我是没有使用Lambda表达式:不简洁、代码多19:43:39.303 [main] INFO com.chen.test.JAVA8Features.Demo01 - 我是使用Lambda表达式:简洁、灵活​Process finished with exit code 0​
  • 1

3、Lambda表达式语法

Lambda表达式在java语言中引入了一种新的语法元素和操作。这种操作符号为“->”,Lambda操作符或箭头操作符,它将Lambda表达式分割为两部分。 左边:指Lambda表达式的所有参数 右边:指Lambda体,即表示Lambda表达式需要执行的功能。

六种语法格式:

1、语法格式一:无参数、无返回值,只需要一个Lambda体

package com.chen.test.JAVA8Features;​import org.slf4j.Logger;import org.slf4j.LoggerFactory;​public class Demo02 {    private static Logger log = LoggerFactory.getLogger(Demo02.class);​    public static void main(String[] args) {        Runnable t1 = ()-> log.info("Lambda表达式:简洁、灵活,优雅永不过时");        t1.run();    }}
  • 1

run result

22:22:39.125 [main] INFO com.chen.test.JAVA8Features.Demo02 - Lambda表达式:简洁、灵活,优雅永不过时​Process finished with exit code 0
  • 1

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

package com.chen.test.JAVA8Features;​import org.slf4j.Logger;import org.slf4j.LoggerFactory;​import java.util.function.Consumer;​public class Demo03 {    private static Logger log = LoggerFactory.getLogger(Demo03.class);    public static void main(String[] args) {        Consumer<String> consumer = new Consumer<String>() {            @Override            public void accept(String s) {                log.info(s);            }        };        consumer.accept("爱与被爱的区别");​        Consumer<String> consumer1 = (s) -> log.info(s);        consumer1.accept("接受爱不一定爱对方,爱一定付出真心爱");    }}​
  • 1

run result

23:03:08.992 [main] INFO com.chen.test.JAVA8Features.Demo03 - 爱与被爱的区别23:03:09.142 [main] INFO com.chen.test.JAVA8Features.Demo03 - 接受爱不一定爱对方,爱一定付出真心爱​Process finished with exit code 0
  • 1

3、语法格式三:Lambda只有一个参数时,可以省略()

package com.chen.test.JAVA8Features;​import org.slf4j.Logger;import org.slf4j.LoggerFactory;​import java.util.function.Consumer;​public class Demo04 {    private static Logger log = LoggerFactory.getLogger(Demo04.class);    public static void main(String[] args) {        Consumer<String> consumer = s -> log.info(s);        consumer.accept("Lambda只有一个参数时,可以省略()");    }}
  • 1

run result

23:08:27.295 [main] INFO com.chen.test.JAVA8Features.Demo04 - Lambda只有一个参数时,可以省略()​Process finished with exit code 0
  • 1

4、语法格式四:Lambda有两个参数时,并且有返回值

package com.chen.test.JAVA
    本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/569790
    推荐阅读
    相关标签
      

    闽ICP备14008679号