随笔分类 - java8
摘要:要讲 Stream ,那就不得不先说一下它的左膀右臂 Lambda 和方法引用,你用的 Stream API 其实就是函数式的编程风格,其中的「函数」就是方法引用,「式」就是 Lambda 表达式。 Lambda 表达式 Lambda 表达式是一个匿名函数,Lambda表达式基于数学中的λ演算得名,
阅读全文
摘要:函数式编程-Stream流 1. 概述 1.1 为什么学? 能够看懂公司里的代码 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 //查询未成年作家的评分在70以上的书籍 由于洋流影响所以作家和书籍可能出现重复,需要进行去重 List<Book> bookList = new ArrayList
阅读全文
摘要:引言 在文章的开头,先说下 NPE 问题,NPE 问题就是,我们在开发中经常碰到的 NullPointerException. 假设我们有两个类,他们的 UML 类图如下图所示 在这种情况下,有如下代码 user.getAddress().getProvince(); 这种写法,在 user 为 n
阅读全文
摘要:Java 8 最大的特性无异于更多地面向函数,比如引入了 lambda等,可以更好地进行函数式编程。前段时间无意间发现了 map.merge() 方法,感觉还是很好用的,此文简单做一些相关介绍。首先我们先看一个例子。 merge() 怎么用? 假设我们有这么一段业务逻辑,我有一个学生成绩对象的列表,
阅读全文
摘要:一、简介 Optional 是一个对象容器,具有以下两个特点: 1. 提示用户要注意该对象有可能为null 2. 简化if else代码 真正体现Optional“有效避免空指针异常”是其ifPresent()、orElse()、orElseGet()以及orElseThrow()这几个方法。 二、
阅读全文
摘要:目录 1.尽量避免使用get()方法 2.尽量避免使用isPresent()方法 3.不要作为类的实例属性 Optional是容器 4.不要作为方法参数 5.正确使用举例 1、ifPresent()判断替换if 2、用orElse替换 if...else... 3、用orElseThrow替换 th
阅读全文
摘要:在我们的开发中,NullPointerException可谓是随时随处可见,为了避免空指针异常,我们常常需要进行一 些防御式的检查,所以在代码中常常可见if(obj != null) 这样的判断。幸好在JDK1.8中,java为我们提供了 一个Optional类,Optional类能让我们省掉繁琐的
阅读全文
摘要:Optional介绍 Optional是Jdk1.8提供的一个新类,希望可以通过该类的引入解决令人烦躁的null判断问题,非常好用。个人理解:这个类是一个包装类,将要操作的java bean封装到该类的对象里面,同时将一些常用的判断逻辑封装为成员方法,结合lambda语法,实现比较优雅的链式调用。现
阅读全文
摘要:来源:blog.csdn.net/zjhred/ article/details/84976734 引言 API介绍 实战使用 引言 在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示 o_op
阅读全文
摘要:Java8 Lambda表达式详解手册及实例 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/wo541075754/article/details/102530810 先贩卖一下焦虑,J
阅读全文
摘要:Java8 中增加了 Stream 处理,可以配合 Lambda 表达式来使用,让操作集合非常便利。虽然我们平时经常使用 Stream,但用到的方法其实非常少,这篇文章就来完整的介绍 Stream 的使用。 Stream 提供的方法非常多,按照调用当前方法是否结束流处理,可以分为中间操作和结束操作。
阅读全文
摘要:先介绍一下API,与其他文章不同的是,本文采取类比的方式来讲,同时结合源码。而不像其他文章一样,一个个API罗列出来,让人找不到重点。 1、Optional(T value),empty(),of(T value),ofNullable(T value) 这四个函数之间具有相关性,因此放在一组进行记
阅读全文
摘要:目录 Optional的使用详解 2、构建Optional 3、Optional API 及源码注解 4、测试使用 4.1、构建 4.2、判断类 4.3、获取类(常用) 4.4、转换类 4.5、测试API使用 Optional的使用详解 1、Optional介绍 Optional 类是一个可以为nu
阅读全文
摘要:相关源码地址:https://github.com/liudongdong0909/java8/tree/master/java8-Lambda/src/com/donggua 一什么是 Stream 二Stream操作的三个步骤 1 第一步创建stream 2 第二步中间操作 3 第三步终止操作终
阅读全文
摘要:1、四类方法获取流 1、Collection 提供了两个方法 stream() 与 parallelStream() 2、通过 Arrays 中的 stream() 获取一个数组流 3、通过 Stream 类中静态方法 of() 4、创建无限流 1、迭代Stream.iterate() 2、生成St
阅读全文
摘要:1、Stream.of 可变参数 Stream<String> stream1 = Stream.of("A", "B", "C"); System.out.println("stream1:" + stream1.collect(joining())); 程序输出: stream1:ABC 2、S
阅读全文
摘要:方法引用例子1 landscape Java8的lambda引入了三种方法引用,构造器引用,及数组引用,以减少代码的开发。需要注意的是,如果需要使用此特性,必须方法返回值类型、参数数量与类型与函数式接口保持一致。 实例 对象 - 实例方法使用场景 当对象的实例方法已经实现了函数式接口将要实现的功能,
阅读全文
摘要:lambda表达式 什么是Lambda表达式 函数式接口 1使用案例 2**来一个带参数的用法** 3来一个带参数和返回值的 方法引用 如何构建方法引用 跳过理论看案例 函数式接口 内置4大接口 Predicate:断言型接口 Consumer 接口(消费者) Supplier (提供者) Func
阅读全文
摘要:几种基础语法 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符箭头操作符将 Lambda 表达式拆分成两部分: 左侧:Lambda 表达式的参数列表 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体 语法
阅读全文
摘要:写在前面 这是一道真实的面试题,一个读者朋友出去面试,面试官竟然问他这样一个问题:你说说Java8中为什么引入Lambda表达式?引入Lambda表达式后有哪些好处呢?还好这个朋友对Java8早有准备。不过,如果是看文章的你出去面试,面试官问你这样的问题,你是否也能轻松回答呢? 什么是Lambda表
阅读全文