Java 8-分享学习

简介: Java 8

第一章 Lambda 表达式  

  • Lambda 表达式在 Java 语言中引入了 “->” 操作符, “->” 操作符被称为 Lambda 表达式 的操作符或者箭头操作符,它将 Lambda 表达式分为两部分: 左侧部分指定了 Lambda。
  • Lambda 表达式本质上是对接口的实现,Lambda 表达式的参数列表本质上对应着接口中方法 的参数列表。 右侧部分指定了 Lambda 体,即 Lambda 表达式要执行的功能。  
  • Lambda 体本质上就是接口方法具体实现的功能。  

语法格式

  1. 无参,无返回值,Lambda 体只有一条语句  
  2. Lambda 表达式需要一个参数,并且无返回值  
  3. Lambda 只需要一个参数时,参数的小括号可以省略  
  4. Lambda 需要两个参数,并且有返回值  
  5. 当 Lambda 体只有一条语句时,return 和大括号可以省  
  6. Lambda 表达式的参数列表的数据类型可以省略不写,因为 JVM 编译器能够通过上下文推断出数据类型,这就是“类型推断”  

函数式接口

只包含一个抽象方法的接口,称为函数式接口。  


第二章 Stream API

  • filter——接收 Lambda , 从流中排除某些元素。
  • limit——截断流,使其元素不超过给定数量。
  • skip(n) —— 跳过元素,返回一个扔掉了前 n 个元素的流。若流中元素不足 n 个,则返回 一个空流。与 limit(n) 互补
  • distinct——筛选,通过流所生成元素的 hashCode() 和 equals() 去除重复元素  
  • map——接收 Lambda , 将元素转换成其他形式或提取信息。接收一个函数作为参数,该 函数会被应用到每个元素上,并将其映射成一个新的元素
  • flatMap——接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成 一个流
  • sorted()——自然排序
  • sorted(Comparator com)——定制排    
  • allMatch——检查是否匹配所有元素
  • anyMatch——检查是否至少匹配一个元素  
  • noneMatch——检查是否没有匹配的元素
  • findFirst——返回第一个元素
  • findAny——返回当前流中的任意元素
  • count——返回流中元素的总个数
  • max——返回流中最大值
  • min——返回流中最小值  
  • reduce(T identity, BinaryOperator) / reduce(BinaryOperator) ——可以将流中元素反复 结合起来,得到一个值。
  • collect——将流转换为其他形式。接收一个 Collector 接口的实现,用于给 Stream 中元素做 汇总的方法  

第三章 Optional

第四章 本地时间和时间戳

主要Api

  • now:静态方法,根据当前时间创建对象
  • of:静态方法,根据指定日期/时间创建对象
  • plusDays,plusWeeks,plusMonths,plusYears:向当前 LocalDate 对象添加几天、几周、几个 月、几年
  • minusDays,minusWeeks,minusMonths,minusYears:从当前 LocalDate 对象减去几天、几 周、几个月、几年
  • plus,minus:添加或减少一个 Duration 或 Period
  • withDayOfMonth,withDayOfYear,withMonth,withYear:将月份天数、年份天数、月份、年 份修改为指定的值并返回新的 LocalDate 对象
  • getDayOfYear:获得年份天数(1~366)
  • getDayOfWeek:获得星期几(返回一个 DayOfWeek 枚举值)
  • getMonth:获得月份, 返回一个 Month 枚举值
  • getMonthValue:获得月份(1~12)  getYear:获得年份
  • until:获得两个日期之间的 Period 对象,或者指定 ChronoUnits 的数字
  • isBefore,isAfter:比较两个 LocalDate  isLeapYear:判断是否是闰年
目录
相关文章
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
75 3
|
23天前
|
XML Java 编译器
Java学习十六—掌握注解:让编程更简单
Java 注解(Annotation)是一种特殊的语法结构,可以在代码中嵌入元数据。它们不直接影响代码的运行,但可以通过工具和框架提供额外的信息,帮助在编译、部署或运行时进行处理。
86 43
Java学习十六—掌握注解:让编程更简单
|
8天前
|
Java 大数据 API
14天Java基础学习——第1天:Java入门和环境搭建
本文介绍了Java的基础知识,包括Java的简介、历史和应用领域。详细讲解了如何安装JDK并配置环境变量,以及如何使用IntelliJ IDEA创建和运行Java项目。通过示例代码“HelloWorld.java”,展示了从编写到运行的全过程。适合初学者快速入门Java编程。
|
1月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
28 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
16天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
1月前
|
小程序 Oracle Java
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
这篇文章是关于JVM基础知识的介绍,包括JVM的跨平台和跨语言特性、Class文件格式的详细解析,以及如何使用javap和jclasslib工具来分析Class文件。
38 0
JVM知识体系学习一:JVM了解基础、java编译后class文件的类结构详解,class分析工具 javap 和 jclasslib 的使用
|
1月前
|
前端开发 Java 应用服务中间件
Javaweb学习
【10月更文挑战第1天】Javaweb学习
31 2
|
1月前
|
存储 安全 Java
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
【用Java学习数据结构系列】探索顺序表和链表的无尽秘密(附带练习唔)pro
23 3
|
1月前
|
存储 安全 Java
【用Java学习数据结构系列】探索栈和队列的无尽秘密
【用Java学习数据结构系列】探索栈和队列的无尽秘密
29 2
|
1月前
|
存储 Java 编译器
【用Java学习数据结构系列】初识泛型
【用Java学习数据结构系列】初识泛型
19 2