随笔分类 -  Java8

摘要:概述 Java8之前用 Future 处理异步请求, 当你需要获取任务结果时, 通常的做法是调用 get(long timeout, TimeUnit unit) 此方法会阻塞当前的线程, 如果任务处理超时, 就会抛出一个 TimeoutException @Test public void tes 阅读全文
posted @ 2019-11-08 08:48 qingshanli 阅读(5697) 评论(0) 推荐(1) 编辑
摘要:概述 在Java8之前, 我们一般都是使用 SimpleDateFormat 来解析和格式化日期时间, 但它是线程不安全的。 @Test public void test() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss" 阅读全文
posted @ 2019-11-06 09:00 qingshanli 阅读(1470) 评论(0) 推荐(1) 编辑
摘要:概述 在Java8之前, 如果需要对一个变量做一次 null 检查, 通常会像下面这样写 如果业务比较复杂, 可能会像上面那样, 使用 if 语句进行多层嵌套, 后期难以扩展。 在Java8中新引入了一个 Optional 类, Optional 类会对可能为 null 值的变量进行建模, 这样你就 阅读全文
posted @ 2019-11-04 08:05 qingshanli 阅读(965) 评论(0) 推荐(0) 编辑
摘要:静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 其中 thenComparingInt() 就是一个默认方法, 它使用 default 关键字修饰。这是Java8引入的新功能: 接口中可以声明默认方法和静态方法。 默认方法带来的多继承问题 在此之 阅读全文
posted @ 2019-11-02 16:14 qingshanli 阅读(1359) 评论(0) 推荐(1) 编辑
摘要:本文转载自 jdk8 Stream 解析2 - Spliterator分割迭代器。 概述 我们最为常见的流的产生方式是 collection.stream(), 你点开Stream()方法, 他是通过 Collection 这个上层接口两个java8 新增特性 default method 进行实现 阅读全文
posted @ 2019-10-31 23:43 qingshanli 阅读(2445) 评论(0) 推荐(0) 编辑
摘要:概述 Stream流是Java8新引入的一个特性, 它允许你以声明性方式处理数据集合, 而不是像以前的指令式编程那样需要编写具体怎么实现。 比如炒菜, 用指令式编程需要编写具体的实现 而如果是Stream流这种声明式方式, 只需要一步操作 炒菜(); 就可以完成上面的炒菜功能。它关注的是我要做什么, 阅读全文
posted @ 2019-10-30 08:40 qingshanli 阅读(933) 评论(0) 推荐(0) 编辑
摘要:函数式编程 在介绍Lambda表达式之前, 首先需要引入另一个概念, 函数式编程。 函数式编程是一种编程范式, 也就是如何编写程序的方法论。它的核心思想是将运算过程尽量写成一系列嵌套的函数调用,关注的是做什么而不是怎么做,因而被称为声明式编程。以 Stateless(无状态)和 Immutable( 阅读全文
posted @ 2019-10-28 09:13 qingshanli 阅读(978) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示