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:判断是否是闰年
目录
相关文章
|
4月前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
28 0
|
18天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
42 18
|
1月前
|
监控 Java 调度
【Java学习】多线程&JUC万字超详解
本文详细介绍了多线程的概念和三种实现方式,还有一些常见的成员方法,CPU的调动方式,多线程的生命周期,还有线程安全问题,锁和死锁的概念,以及等待唤醒机制,阻塞队列,多线程的六种状态,线程池等
102 6
【Java学习】多线程&JUC万字超详解
|
2月前
|
前端开发 Java 编译器
【前端学java】如何从前端视角快速学习Maven
【8月更文挑战第12天】如何从前端视角快速学习Maven
43 2
【前端学java】如何从前端视角快速学习Maven
|
2月前
|
存储 算法 Java
Java零基础(1) - 从零开始学习数组
【8月更文挑战第1天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
34 1
|
2月前
|
Java 测试技术 开发者
Java零基础教学(07):学习正确的命名规范
【8月更文挑战第7天】Java零基础教学篇,手把手实践教学!
94 0
|
4月前
|
安全 Java 编译器
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
杭州 【Java基础知识 11】java泛型方法的定义和使用(学习+改进+自己理解,想法) (借鉴-侵-删)
37 1
|
4月前
|
消息中间件 负载均衡 Java
学习Java中的反应式编程
学习Java中的反应式编程
|
4月前
|
Java
JAVA高级部分学习小结(2023.11.4)
JAVA高级部分学习小结(2023.11.4)
|
3月前
|
设计模式 算法 Oracle
Java语言学习路径及学习资源推荐
Java语言学习路径及学习资源推荐
下一篇
无影云桌面