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:判断是否是闰年
目录
相关文章
|
2月前
|
IDE Java 编译器
java编程最基础学习
Java入门需掌握:环境搭建、基础语法、面向对象、数组集合与异常处理。通过实践编写简单程序,逐步深入学习,打牢编程基础。
233 1
|
2月前
|
存储 Oracle Java
java零基础学习者入门课程
本课程为Java零基础入门教程,涵盖环境搭建、变量、运算符、条件循环、数组及面向对象基础,每讲配示例代码与实践建议,助你循序渐进掌握核心知识,轻松迈入Java编程世界。
315 0
|
3月前
|
Java API 容器
Java基础学习day08-2
本节讲解Java方法引用与常用API,包括静态、实例、特定类型方法及构造器引用的格式与使用场景,并结合代码示例深入解析。同时介绍String和ArrayList的核心方法及其实际应用。
165 1
|
2月前
|
负载均衡 Java API
grpc-java 架构学习指南
本指南系统解析 grpc-java 架构,涵盖分层设计、核心流程与源码结构,结合实战路径与调试技巧,助你从入门到精通,掌握高性能 RPC 开发精髓。
314 7
|
3月前
|
Java
Java基础学习day08-作业
本作业涵盖Java中Lambda表达式的应用,包括Runnable与Comparator接口的简化实现、自定义函数式接口NumberProcessor进行加减乘及最大值操作,以及通过IntProcessor处理整数数组,实现遍历、平方和奇偶判断等功能,强化函数式编程实践。
84 5
|
3月前
|
Java 程序员
Java基础学习day08
本节讲解Java中的代码块(静态与实例)及其作用,深入介绍内部类(成员、静态、局部及匿名)的定义与使用,并引入函数式编程思想,重点阐述Lambda表达式及其在简化匿名内部类中的应用。
156 5
|
3月前
|
Java
Java基础学习day07-作业
本作业包含六个Java编程案例:1)动物类继承与多态;2)加油卡支付系统;3)员工管理类设计;4)学生信息统计接口;5)USB设备控制;6)家电智能控制。综合运用抽象类、接口、继承、多态等面向对象技术,强化Java基础编程能力。
187 3
|
3月前
|
Java
Java基础学习day06-作业
本内容为Java基础学习作业,涵盖两个案例:一是通过Card类及其子类GoldenCard、SilverCard实现加油卡系统,体现封装与继承;二是通过Shape类及子类Circle、Rectangle演示多态与方法重写,强化面向对象编程理解。
97 1
|
3月前
|
设计模式 存储 Java
Java基础学习day07
本节讲解Java中的final关键字、单例设计模式、枚举类、抽象类与接口。涵盖常量定义、单例写法(饿汉式/懒汉式)、枚举特点及应用场景,以及抽象类与接口的使用与区别,助力掌握核心面向对象编程思想。
151 1
|
3月前
|
算法 Java
Java基础学习day03-作业
本内容包含多个Java编程案例,涵盖条件判断、循环、数组、随机数生成、素数判断等基础算法练习,适用于巩固Java语法与逻辑思维训练。
144 6