当前位置: 首页 > news >正文

【Java8】

1、接口中默认方法修饰为普通方法

在jdk8之前,interface之中可以定义变量和方法,变量必须是public、static、final的,方法必须是public、abstract的,由于这些修饰符都是默认的。
接口定义方法: public抽象方法需要子类实现
接口定义变量: public、static、final

在JDK 1.8开始支持使用static和default修饰可以写方法体。static和default方法可以定义多个。

  • 实现类可以重写default方法,不可以重写static方法
  • static方法的调用必须使用[接口对象名.]调用

1.2、代码案例

在这里插入图片描述

2、Lambda表达式

2.1、什么是Lambda表达式

Java中使用Lambda表达式的规范,必须是为函数接口
函数接口的定义:在该接口中只能存在一个抽象方法,该接口称作为函数接口

Java中的Lambda表达式的规范,必须是为函数接口。
函数接口的定义:在该接口中只能存在一个抽象方法,该接口称作为函数接口
在这里插入图片描述

2.2、Lambda表达式的规范

使用Lambda表达式依赖于函数接口

  • 1.在接口中只能够允许有一个抽象方法
  • 2.在函数接口中定义 object类中方法
  • 3.使用默认或者静态方法
  • 4.@FunctionalInterface表示该接口为函数接口
    在这里插入图片描述
    在这里插入图片描述

3、Stream流

3.1、sorted排序

在这里插入图片描述

3.2、reduce并行计算

在这里插入图片描述

3.3、Max、Min取最大、最小

在这里插入图片描述

3.4、anyMatch判断集合是否含有某个元素

在这里插入图片描述

3.5、allMatch判断集合某个元素全部匹配

在这里插入图片描述

3.6、filter过滤

在这里插入图片描述

3.7、skip+limit实现分页

在这里插入图片描述

4、方法引入

方法引入需要结合 lambda表达式能够让代码变得更加精简。

  • 静态方法引入 类名::(静态)方法名称
  • 对象方法引入 类名::实例方法名称
  • 实例方法引入 new对象 对象实例::方法引入
  • 构造函数引入 类名::new

需要遵循一个规范:
方法引入方法参数列表、返回类型与函数接口参数列表与返回类型必须要保持一致。|

4.1、静态方法引入

在这里插入图片描述

4.2、实例方法引入

在这里插入图片描述

4.3、构造方法引入

在这里插入图片描述

5、Optional

  • Optional类是一个可以为null的容器对象。如果值存在则 isPresent()方法会返回true,调用get(方法会返回该对象。
  • Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。
  • Optional类的引入很好的解决空指针异常。

5.1、ofNullable,Of,isPresent判断参数是否为空

  • ofNullable(可以传递一个空对象)
  • Of(不可以传递空对象)
    在这里插入图片描述
    在这里插入图片描述

5.2、get()获取元素

在这里插入图片描述

5.3、orElse为空值设置默认值

在这里插入图片描述

5.4、配合filter()使用

在这里插入图片描述

5.5、ifPresent值不为空则执行

在这里插入图片描述

5.6、orElseGet

在这里插入图片描述
在这里插入图片描述

6、时间日期API

6.1、传统时间格式化存在线程安全问题

在这里插入图片描述

6.2、LocalDate保证时间格式化线程安全

在这里插入图片描述

6.2、LocalDate、LocalTime、LocalDateTime

LocalDate、 LocalTime、 LocalDateTime类的实例是不可变的对象,分别表示使用ISO-8601日历系统的日期、时间、日期和时间。它们提供了简单的日期或时间,并不包含当前的时间信息。也不包含与时区相关的信息。

lSO-8601日历系统是国际标准化组织制定的现代公民的日期和时间的表示法

在这里插入图片描述

6.3、Instant计算机读的时间

时间戳计算机读的时间(以Unix元年:1970年1月1日00:00:00到某个时间之间的毫秒值)
在这里插入图片描述

6.4、Duration计算[时间]间隔,Period计算[日期]间隔

在这里插入图片描述
在这里插入图片描述

6.5、TemporalAdjuster时间矫正器

有时我们可能需要获取例如:将日期调整到“下个周日”等操作。

TemporalAdjusters :该类通过静态方法提供了大量的常用TemporalAdjuster的实现。
[ˈtempərəl] [əˈdʒʌstərz]
在这里插入图片描述
在这里插入图片描述

6.6、DateTimeFormatter

在这里插入图片描述

6.7、ZonedDate、ZonedTime、ZonedDateTime时区的处理

在这里插入图片描述
在这里插入图片描述

7、重复注解

http://www.lryc.cn/news/20522.html

相关文章:

  • 阿里 Java 程序员面试经验分享,附带个人学习笔记、路线大纲
  • 十大算法基础——上(共有20道例题,大多数为简单题)
  • 【PAT甲级题解记录】1018 Public Bike Management (30 分)
  • SpringCloud————Eureka概述及单机注册中心搭建
  • 原生django raw() 分页
  • Android 9.0 Settings 搜索功能屏蔽某个app
  • SQL性能优化的47个小技巧,果断收藏!
  • SE | 哇哦!让人不断感叹真香的数据格式!~
  • 运行Qt后出现无法显示字库问题的解决方案
  • 数据库浅谈之共识算法
  • 代码随想录算法训练营 || 贪心算法 455 376 53
  • PMP考前冲刺2.25 | 2023新征程,一举拿证
  • 【自然语言处理】Topic Coherence You Need to Know(主题连贯度详解)
  • C++入门:模板
  • 【MySQL】索引常见面试题
  • 【Web逆向】万方数据平台正文的逆向分析(上篇--加密发送请求)—— 逆向protobuf
  • Amazon S3 服务15岁生日快乐!
  • 【python】函数详解
  • AoP-@Aspect注解处理源码解析
  • 宝塔搭建实战php悟空CRM前后端分离源码-vue前端篇(二)
  • FastASR+FFmpeg(音视频开发+语音识别)
  • 二分查找的实现代码JAVA
  • cesium: 设置skybox透明并添加背景图 ( 003 )
  • 【python】类的详解
  • 西安银行就业总结
  • JavaScript Window
  • 那些开发过程中需要遵守的开发规范
  • EFCore 基础入门教程
  • HTML5 Drag and Drop
  • 惠普m1136打印机驱动程序安装教程