
JDK8新特性
文章平均质量分 92
JDK8新特性
扛麻袋的少年
得过且过,一天又一天
展开
-
JDK8新特性
1.Lambda表达式 JDK8以前,我们编写匿名内部类,看着很繁琐。 JDK8带来了Lambda表达式,编写代码更加简单,可以减少冗余代码。 参考:Lambda表达式 Lambda表达式原理分析 Lambda表达式----常用的内置函数式接口 ...原创 2020-01-02 16:16:16 · 8181 阅读 · 1 评论 -
多线程异步调用实现方式:CompletableFuture
本文目录CompletableFuture 简介Future 与 CompletableFutureCompletableFuture 入门1.使用 CompletableFuture2.没有返回值的异步任务3.有返回值的异步任务4. 线程依赖5.消费处理结果6.异常处理7.结果合并8.合并多个任务的结果:allOf 与 anyOf9.其它一些方法 创建线程时,除了 实现Callable接口,重写call()方法,通过FutureTask包装器来创建Thread线程,通过 get() 方法获得返回值外。原创 2021-11-01 15:56:16 · 1364 阅读 · 2 评论 -
JDK8新特性(一):Lambda表达式
1.首先来个Demopublic class LambdaDemo { public static void main(String[] args) { //开启一个线程 new Thread(new Runnable() { @Override public void run() { ...原创 2020-01-02 17:21:58 · 3781 阅读 · 3 评论 -
JDK8新特性(二):JDK8接口增强
1.接口增强在JDK8之前,JDK规定接口中只能定义 ①静态常量 ②抽象方法修饰词 interface 接口名{ 静态常量; 抽象方法;}在JDK8之后,对接口进行了增强。我们可以在接口中定义 ①静态常量 ②抽象方法 ③默认方法 ④静态方法修饰词 interface 接口名{ 静态常量; 抽象方法; 默认方法; ...原创 2020-01-03 18:25:47 · 2524 阅读 · 1 评论 -
JDK8新特性(三):集合之 Stream 流式操作
1.Stream流由来 首先我们应该知道:Stream流的出现,主要是用在集合的操作上。在我们日常的工作中,经常需要对集合中的元素进行相关操作。诸如:增加、删除、获取元素、遍历。 最典型的就是集合遍历了。接下来我们先举个例子来看看 JDK8 Stream流式操作出现之前,我们对集合操作的过程,从中来了解一下JDK8 之前集合操作数据的弊端。 Demo...原创 2020-01-07 16:52:10 · 16087 阅读 · 8 评论 -
JDK8新特性(四):Optional 类的使用
Optional类的使用 JDK8以前,编写代码,通常会出现 NullPointerException (空指针异常),通常情况下我们都是通过 if ... else... 来对对象进行为空判断,然后再进行逻辑处理,代码写起来也比较冗余。JDK8新增了Optional类,使用该类可以避免我们对空指针的检查,使代码看起来比较优雅。1.Optional类介绍 ...原创 2020-01-12 13:05:22 · 6647 阅读 · 2 评论 -
JDK8新特性(五):JDK8时间日期API
前言 在 JDK8 之前,我们经常使用到的时间API包括(Date、Calendar),Date 与字符串之间的转换使用 SimpleDateFormat 进行转换(parse()、format() 方法),然而 SimpleDateFormat 不是线程安全的。在设计上也是存在一些缺陷的,比如有两个 Date 类,一个在 java.util 包中,一个在 java.sql 包中。...原创 2020-01-13 11:29:53 · 6015 阅读 · 4 评论 -
JDK8新特性(六):JDK 8 可重复注解 与 类型注解
前言 自从 Java 5 中引入注解依赖,注解开始变得非常流行,并在各个框架和项目中被广泛使用。 不过注解有一个很大的限制:在同一个地方不能多次使用同一个注解。为了解决这个问题,JDK 8 引入了可重复注解的概念,允许在同一个地方多次使用同一个注解。 在 JDK 8 之前,注解只能用在各种程序元素(定义类、定义接口、定义方法、定义成员变量…)上。原创 2020-01-14 11:21:31 · 3017 阅读 · 0 评论 -
JDK8辅助学习(一):Lambda表达式原理分析
前言 本文来了解 Lambda 表达式的实现原理 ------>接上文:JDK8新特性(一):Lambda表达式。 通过上文,我们知道 Lambda表达式的出现,就是针对使用匿名内部类语法冗余的问题。所以在分析 Lambda 表达式原理的同时,首先我们先来了解一下 匿名内部类 的实现原理。1.匿名内部类实现原理 ①附Demo/** * ...原创 2020-01-03 10:11:27 · 2556 阅读 · 2 评论 -
JDK8辅助学习(二):Lambda表达式----常用的内置函数式接口
前言 当你在学习本文时,如果您还不了解 Lambda表达式的使用,请先跳转链接:JDK8新特性(一):Lambda表达式,来了解一下 Lambda表达式的基本使用。 从Lambda表达式一文,我们了解到使用Lambda表达式的前提条件,如下图所示。 由于使用条件的限制,明显不利于 Lambda表达式 的推广使用。为了能够让我们更方便的使用 ...原创 2020-01-06 16:49:55 · 2720 阅读 · 1 评论 -
JDK8辅助学习(三):Lambda表达式----方法引用(JDK8 :: 双冒号的使用)
方法引用由来 从JDK8新特性一文 『Lambda表达式』模块,当我们学习了 1.Lambda表达式 2.Lambda表达式原理分析 3.Lambda表达式----常用的内置函数式接口,学习了Lambda 表达式以及它的简写形式,并使用 Lambda 表达式可以对代码进行简化。 但是 Lambda 表达式在某些情况下还是有可能会出现代码冗余的情况。 下面我们...原创 2020-01-07 09:12:12 · 3704 阅读 · 2 评论 -
JDK8辅助学习(四):Stream流 collect() 方法的详细使用介绍
Stream流 collect() 方法的使用介绍//1.<R> R collect(Supplier<R> supplier, BiConsumer<R, ? super T> accumulator, BiConsumer<R, R> combiner);//2....原创 2020-01-10 13:54:14 · 54033 阅读 · 22 评论 -
JDK8辅助学习(五):并行 Stream 流的使用
我们在之前文章:集合之 Stream 流式操作 和Stream流 collect() 方法的详细使用介绍中使用到的示例,使用的都是串行的流,就是说在一个线程上执行的流。 JDK8 还为我们提供了并行的 Stream 流,即多线程执行的流。这显然在效率方面就会有很大的提升了。接下来我们来个示例验证一下串行流的执行,是不是单线程运行。/** * 串行 St...原创 2020-01-10 17:28:33 · 2676 阅读 · 3 评论 -
JDK8辅助学习(六):Fork/Join 框架
Fork/Join 框架介绍 Fork/Join作为一个并发框架,是在 JDK7 的时候加入到 Java 并发包 java.util.concurrent 中来,并且在 JDK8 并行Stream流(parallel Stream)中充当着底层框架的角色。...原创 2020-01-14 18:09:25 · 3080 阅读 · 1 评论 -
JDK8辅助学习(七):IntStream
本章节我们提供一些 Java 8 中的 IntStream、LongStream 和 DoubleStream 使用范例。IntStream、LongStream 和 DoubleStream 分别表示原始 int 流、 原始 long 流 和 原始 double 流。这三个原始流类提供了大量的方法用于操作流中的数据,同时提供了相应的静态方法来初始化它们自己。这三个原始流类都在 java.util.stream 命名空间下。...原创 2021-03-31 15:25:08 · 4467 阅读 · 3 评论