JDK1.8新增特性

news/2024/11/27 3:03:01/

新特性:

        Lambda表达式: (语法三要素:参数、箭头、代码)

               JDK1.8引入的一种新语法Lambda表达式,它简化了匿名内部类的使用和提高代码的可读性。

java">/**正常写法创建Runable**/
Runnable runnable = new Runnable() {@Overridepublic void run() {System.out.println("*************");}
};/**Lambda表达式写法*/
Runnable runnable = () -> System.out.println("*************");

       接口提供默认方法和静态方法:

java">public interface UserService {/*** 默认方法*/default void add(){System.out.println("add");};/*** 静态方法* @param id* @return*/public static User getUser(String id){return new User();};
}

        Stream API :

               JDK1.8引入的一种新抽象流,提供一种新的处理数据方式,对集合或数据元素进行函数式编程数据处理;所有 Collection 集合都可以通过 stream 默认方法获取流。

java">  List<String> list = Arrays.asList("ASDSFSDSF","NBDS","WKEKRERE","BC8D");//通过stream流过滤列表中长度等4的字符串列表List<String> newList = list.stream().filter(pre->pre.length()==4).collect(Collectors.toList());//通过stream流把列表内容转换小写并返回一个新的列表List<String> toLowerCaseList = list.stream().map(String::toLowerCase).collect(Collectors.toList());//获取集合长度long count = list.stream().count();//获取集合第1个元素Optional<String> first = list.stream().findFirst();

        函数试接口 :

            1、自定义函数试接口 

java">@FunctionalInterface
public interface MyFunctionalInterface {int add(int a,int b);
}
//调用
MyFunctionalInterface myFunctionalInterface = (a,b)-> a+b;
int a = myFunctionalInterface.add(5,2);
System.out.println(a);

              2、Predicate<T>:判断型接口输入一个参数T,返回一个布尔值

java"> Predicate<String> isEmpty = p -> p.isEmpty();// 输出: falseSystem.out.println(isEmpty.test("abc"));

             3、Function<T,R>:函数试接口有输入参数T和返回结果R,用于执行一些转换逻辑。

java">Function<Integer, Integer> function = (Integer i) -> i * i;
// 输出: 100
System.out.println(function.apply(10));

            4、Supplier<T>:供给型接口,无参数返回数据类型T。

            5、Consumer<T>:消费型接口,有参数T,无返回值。

java">public class User {public void follow(final String str) {System.out.println("Following the " + str);}
}Consumer<String> follow = user :: follow;
follow.accept("Consumer....");

        方法引用 :

                1、构造器引用: ClassName::new
                2、类的静态方法引用: ClassName::staticMethodName
                3、对象的实例方法引用: object::methodName
                4、特定类型的实例方法引用:TypeName::methodName

        LocalDate API : 

                1、LocalDate : 年月日;

                2、LocalTime : 时分秒;

                3、LocalDateTime : 年月日时分秒;

                4、Period : 两个日期之间的时间间隔;

                5、Duration : 两个时间之间的持续时间;

                


http://www.ppmy.cn/news/1550218.html

相关文章

HarmonyOS Next 简单上手元服务开发

HarmonyOS Next 简单上手元服务开发 万物互联时代&#xff0c;人均持有设备量不断攀升&#xff0c;设备种类和使用场景更加多样&#xff0c;使得应用开发、应用入口变得更加复杂。在此背景下&#xff0c;应用提 供方和用户迫切需要一种新的服务提供方式&#xff0c;使应用开发…

MySQL基础大全(看这一篇足够!!!)

文章目录 前言一、初识MySQL1.1 数据库基础1.2 数据库技术构成1.2.1 数据库系统1.2.2 SQL语言1.2.3 数据库访问接口 1.3 什么是MySQL 二、数据库的基本操作2.1 数据库创建和删除2.2 数据库存储引擎2.2.1 MySQL存储引擎简介2.2.2 InnoDB存储引擎2.2.3 MyISAM存储引擎2.2.4 存储引…

vue3+elementui-plus el-dialog全局配置点击空白处不关闭弹窗

在与main.ts同级下的plugins文件夹&#xff08;如果没有&#xff0c;新建一个&#xff09;下建一个element.js文件&#xff08;名字随便取&#xff09; element.js文件内容如下&#xff1a; import ElementPlus from element-plus export default (app) > {console.log(app…

【Axure高保真原型】或和且条件

今天和大家分享或和且条件案例的原型模板&#xff0c;效果包括&#xff1a; 可以选择指标、等式和填写对应值构成条件等式&#xff1b; 点击添加条件按钮&#xff0c;可以增加一行新的条件&#xff1b; 点击所在行的号按钮&#xff0c;可以在该行下方添加一行新的条件&#x…

H.265流媒体播放器EasyPlayer.js网页全终端安防视频流媒体播放器可以播放本地视频吗

H.264/H.265播放器EasyPlayer.js主要用于在网页上实现视频播放功能&#xff0c;特别是针对RTSP流的播放。它允许开发者在不需要安装额外插件或软件的情况下&#xff0c;直接在网页中嵌入和播放来自监控摄像头或其他RTSP源的视频流。 可以播放本地视频吗&#xff1f; 回答&…

SpringBoot技术打造智能考勤平台

第1章 绪论 1.1 项目背景及意义 企业内部工作人员每天当中的出勤记录能够看出员工对于工作的积极性和工作是否高效。这种方式比较困难但是也在持续的前进&#xff0c;以前的通过人工记录出勤的企业工作人员工作时态度应用的方法并不正确&#xff0c;不但是这些不利之处&#xf…

GoF设计模式——结构型设计模式分析与应用

文章目录 UML图的结构主要表现为&#xff1a;继承&#xff08;抽象&#xff09;、关联 、组合或聚合 的三种关系。1. 继承&#xff08;抽象&#xff0c;泛化关系&#xff09;2. 关联3. 组合/聚合各种可能的配合&#xff1a;1. 关联后抽象2. 关联的集合3. 组合接口4. 递归聚合接…

SpringBoot(9)-Dubbo+Zookeeper

目录 一、了解分布式系统 二、RPC 三、Dubbo 四、SpringBootDubboZookeeper 4.1 框架搭建 4.2 实现RPC 一、了解分布式系统 分布式系统&#xff1a;由一组通过网络进行通信&#xff0c;为了完成共同的任务而协调工作的计算机节点组成的系统 二、RPC RPC&#xff1a;远程…