【Java新特性】
Java新特性
Mandy_i
科技让生活更美好,终身学习的践行者
展开
-
【Java8新特性】——Stream的reduce及Collect使用方式
文章目录前言一、Reduce1.1一个参数的ReduceBiFunctionBinaryOperator1.2二个参数的Reduce1.3三个参数的Reduce非并行并行二、Collect定义BiConsumer三、Collector四、定制收集器总结前言本文主要讲解关于Stream中reduce的使用方式以及Collect使用方式,同时展示如何自定义收集器。提示:如果大家对lambda表达式中的四大基础函数不清楚,推荐大家优先看下四大内置核心函数式接口以及看下关于reduce相关api的使用,J原创 2020-12-20 22:21:01 · 1644 阅读 · 0 评论 -
【Java8新特性】——四大内置核心函数式接口
之前其实写过Java8新特性的函数式接口的文章,现在再一次重复,之前学过的内容,偏重于笔记,在工作中的使用场景并不是很多,再一次总结,除了温故而知新,也结合一些自己工作中遇到的案例,希望可以帮助到需要的朋友。1、消费型接口,有入参,没有返回值通常用于对入参的逻辑处理,简化重复定义方法的流程,优化代码简洁度。@FunctionalInterfacepublic interface Consumer<T> { /** * Performs this ...原创 2020-07-12 18:50:24 · 380 阅读 · 1 评论 -
常用时间工具类-某小时,天,星期,月的开始结束时间
在没有使用Java8之前在封装相关时间工具类的时候都使用的是java.util.Calendar。Java.util.Calendar类将日期同时存储为与标准纪元之间的偏移量以及一组日历字段。此双精度表示导致在意外的时间重新计算日历字段,从而产生不可预测的性能特点,java.util.Calendar是可改变的。也就是说明java.util.Calendar类是线程不安全的。在Java8中推出...原创 2019-05-06 10:08:15 · 405 阅读 · 1 评论 -
Java8特征性使用
最近在工作中加大了lambda表达式的使用,特此记录一些,会不断更新。list转成map,收集实体本身public Map<Long, Account> getIdAccountMap(List<Account> accounts) { return accounts.stream().collect(Collectors.toMap(Account::getI...原创 2018-12-23 21:03:08 · 674 阅读 · 3 评论 -
【Java8新特性】——Optional
前提 著名的NullPointerException是导致Java应用程序失败的最常见原因,而在Java8中对这种常见错误提出了Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在。Optional不是对null关键字的一种替代,而是对于null判定提供了一种更加优雅的实现,还可以避免空指针异常。 空指针是运行时异常,对于这一...原创 2018-04-28 15:34:35 · 1729 阅读 · 18 评论 -
【Java8新特性】——强大的Stream API
前提 Java8中除了lambda表达式,Stream API(java.util.stream.*)也是神一样的存在,尤其在简化代码,提高代码质量上,十分推荐使用!何为Stream?简单说,Stream API提供高效而且易于使用的处理数据方式。Stream是Java8中处理集合的关键抽象概念,可以对集合进行非常复杂的查找,过滤和映射等操作。利用Stream API对集合数据进行操作,类似...原创 2018-04-25 11:06:25 · 713 阅读 · 53 评论 -
【Java8新特性】——方法引用\构造器引用\数组引用\接口中默认方法以及静态方法
前提 之前的博客中讲过lambda的使用以及语法,官方对lambda的使用还做了进一步的优化。方法引用传递给Lambda体的操作,已经有实现的方法了,就可以使用方法引用!实现抽象方法的参数列表,必须与方法引用方法的参数列表与返回值类型保持一致。使用操作符“::”将方法名和对象或类名分隔开。(可以理解为方法引用是Lambda表达式的另外一种表现形式)1、对象::实例方法// 使用...原创 2018-04-23 12:12:29 · 299 阅读 · 13 评论 -
【Java8新特性】——函数式接口
前提 lambda表达式需要“函数式接口”的支持,接口中只有一个抽象方法的接口称为函数式接口,可以使用注解@FunctionalInterface检查接口是否是函数式接口。有些时候不能为了使用lambda表达式而去专门创建一些接口,这样反而会降低了开发效率。其实Java8本身提供一些函数式接口,方便大家的使用!本文主要讲解核心的四大内置函数式接口!四大核心函数式接口1、Consumer<...原创 2018-04-22 10:25:09 · 280 阅读 · 13 评论 -
【Java8新特性】——Lambda表达式
前提 在Java8中提出了lambda表达式,而且众多大神也极力推荐使用lambda表达式进行编程,以此提高开发效率,同时提升代码质量。经常使用lambda表达式的同胞都知道,使用lambda表达式极大程度避免了空指针的问题,提高系统的稳定性。所以无论怎么说,lambda表达式使用也是必备技能。小编在项目中也用过一些简单lambda表达式,但是一般都是看网上人家怎么写,自己就跟着人家的写法,...原创 2018-04-21 11:54:41 · 382 阅读 · 11 评论