摘要: 概述 Java8之前用 Future 处理异步请求, 当你需要获取任务结果时, 通常的做法是调用 get(long timeout, TimeUnit unit) 此方法会阻塞当前的线程, 如果任务处理超时, 就会抛出一个 TimeoutException @Test public void tes 阅读全文
posted @ 2019-11-08 08:48 qingshanli 阅读(5660) 评论(0) 推荐(1) 编辑
摘要: 概述 在Java8之前, 我们一般都是使用 SimpleDateFormat 来解析和格式化日期时间, 但它是线程不安全的。 @Test public void test() { SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss" 阅读全文
posted @ 2019-11-06 09:00 qingshanli 阅读(1469) 评论(0) 推荐(1) 编辑
摘要: 概述 在Java8之前, 如果需要对一个变量做一次 null 检查, 通常会像下面这样写 如果业务比较复杂, 可能会像上面那样, 使用 if 语句进行多层嵌套, 后期难以扩展。 在Java8中新引入了一个 Optional 类, Optional 类会对可能为 null 值的变量进行建模, 这样你就 阅读全文
posted @ 2019-11-04 08:05 qingshanli 阅读(963) 评论(0) 推荐(0) 编辑
摘要: 静态方法和默认方法 我们可以在 Comparator 接口的源码中, 看到大量类似下面这样的方法声明 其中 thenComparingInt() 就是一个默认方法, 它使用 default 关键字修饰。这是Java8引入的新功能: 接口中可以声明默认方法和静态方法。 默认方法带来的多继承问题 在此之 阅读全文
posted @ 2019-11-02 16:14 qingshanli 阅读(1357) 评论(0) 推荐(1) 编辑
摘要: 本文转载自 jdk8 Stream 解析2 - Spliterator分割迭代器。 概述 我们最为常见的流的产生方式是 collection.stream(), 你点开Stream()方法, 他是通过 Collection 这个上层接口两个java8 新增特性 default method 进行实现 阅读全文
posted @ 2019-10-31 23:43 qingshanli 阅读(2338) 评论(0) 推荐(0) 编辑
摘要: 概述 Stream流是Java8新引入的一个特性, 它允许你以声明性方式处理数据集合, 而不是像以前的指令式编程那样需要编写具体怎么实现。 比如炒菜, 用指令式编程需要编写具体的实现 而如果是Stream流这种声明式方式, 只需要一步操作 炒菜(); 就可以完成上面的炒菜功能。它关注的是我要做什么, 阅读全文
posted @ 2019-10-30 08:40 qingshanli 阅读(931) 评论(0) 推荐(0) 编辑
摘要: 函数式编程 在介绍Lambda表达式之前, 首先需要引入另一个概念, 函数式编程。 函数式编程是一种编程范式, 也就是如何编写程序的方法论。它的核心思想是将运算过程尽量写成一系列嵌套的函数调用,关注的是做什么而不是怎么做,因而被称为声明式编程。以 Stateless(无状态)和 Immutable( 阅读全文
posted @ 2019-10-28 09:13 qingshanli 阅读(977) 评论(0) 推荐(0) 编辑
摘要: 在项目中做了一个支付功能, 需要引入第三方渠道的配置文件config.xml用来初始化文件证书, 将配置文件 config.xml 放到 resources 资源目录下。 本地开发环境下能正常读取该文件, 但是在 Linux 环境下将项目打包成jar后运行会出现如下异常: 因为在本地开发环境下, c 阅读全文
posted @ 2019-10-24 09:37 qingshanli 阅读(11961) 评论(0) 推荐(0) 编辑
摘要: Mysql之utf8和utf8mb4的区别 最近在项目中使用Mysql数据库保存emoji表情 😋 时报错 坑了大半天,才知道Mysql的utf8编码并不是真正的UTF-8编码,Mysql的utf8最多只支持3个字节,而emoji表情、一些特殊的中文字符则需要4个字节才能存储, 因此才会报错。下面 阅读全文
posted @ 2019-09-06 22:41 qingshanli 阅读(23609) 评论(0) 推荐(0) 编辑
摘要: 最近在项目中使用到了 Spring 的 JdbcTemplate, 中间遇到了好多坑, 所以花一些时间对 JdbcTemplate 的使用做了一个总结, 方便以后自己的查看。文章中贴出来的API都是经过测试的, 可以放心大胆的拿去用。 概述 JdbcTemplate主要提供4种方法: 前两种使用的一 阅读全文
posted @ 2019-08-03 19:53 qingshanli 阅读(1639) 评论(0) 推荐(1) 编辑