使用Java8快速实现List转map、分组、过滤等操作
herman 3年前 (2021-08-27) 2108浏览
利用 java8 新特性,可以用简洁高效的代码来实现一些数据处理。 先定义 1 个 Apple 对象: public class Apple { private Integer id; private String na...
herman 3年前 (2021-08-27) 2108浏览
利用 java8 新特性,可以用简洁高效的代码来实现一些数据处理。 先定义 1 个 Apple 对象: public class Apple { private Integer id; private String na...
herman 3年前 (2021-07-08) 5626浏览
Java8 Stream 实现复杂集合对象的差集、并集、交集! 昨天群里一位网友想要获取两个 List 集合之间的差集、并集、交集!群里网友群策群力,很多有人给他百度搜索到了一个结果。demo 案例如下所示: import java.u...
herman 4年前 (2020-08-09) 5773浏览
先说一下,在 Java8 中 computeIfAbsent 方法有一个严重的死循环 bug,Java9 中已经修复了,这个后面我们单独列举文章来详细说它是如何产生以及如何被修复的。 实际上从 Java 8 开始,Map 提供了 comput...
herman 5年前 (2019-09-28) 3067浏览
最新版的 Java 13 已于2019年9月17日发布。这次也不例外,发布了很多新特性。 Java 13 新特性 Java 13 的新特性主要包含一下 5 个方面。 JEP 350,Dynamic CDS ArchivesJEP ...
herman 6年前 (2019-02-15) 4027浏览
据说,这是一道谷歌的面试题。 就是有 3 个 for 循环,有的程序员会把 3 个一样的 for 循环合成一个来写,有的把一个 for 循环,扯成 3 个来写。比如下面的这道题。 //第一种情况 for(int i=0;i<1...
herman 6年前 (2018-11-30) 16751浏览
最近在做团队代码 code review 的时候发现了有人使用了 @FunctionalInterface 注解。我对这个注解不是很熟悉,基本上没用过。于是我就问对应的开发人员,给我讲一讲这个注解的用法,为什么要用这个注解?他...
herman 6年前 (2018-11-17) 2512浏览
Java 中日常用到的锁大概有 14 种:悲观锁、乐观锁、自旋锁、适应性自旋锁、无锁、偏向锁、轻量级锁、重量级锁、公平锁、非公平锁、可重入锁、非可重入锁、独享锁、共享锁。 每种锁都有不同的使用场景!具体哪种场景使用哪种锁,你只需要回答下面 ...
herman 6年前 (2018-10-12) 2170浏览
java 10 中 var 关键字的使用有很多的局限性,没完全领悟,使用不当都会在编译时抛出异常。本文在前面一篇《java 10 中 var 关键字(类型推断)使用教程》的基础上,总结了一些常见的 var 类型异常,分享给大家! v...
herman 6年前 (2018-10-12) 3633浏览
我在公众号里发表的这篇文章《Java 11 更新了 String 字符串 API,你得重新认识它》被人评论说我 JavaScript 写多了,var 变量都出来。然后我给他解释,这是 java 10 的新特性,不是我 js 代码写多了。目前看来关...
herman 6年前 (2018-08-28) 5855浏览 0评论
java.util.Optional<T> 是 java 8 中推出来的一个新类,主要用来解决空异常 NullPointerException 的问题,但它也不算真正的解决,还是可以返回 null 和 抛出空异常的。公司很多新人都会用...
herman 7年前 (2018-04-29) 4993浏览 0评论
java 中提供了两个线程安全的操作方式,一个是 Threadlocal ,一个是ThreadLocalMap。本文介绍他们的区别和实现原理。 Threadlocal Threadlocal 的属性包括 threadLocalHash...
herman 7年前 (2018-04-24) 8633浏览 0评论
在jdk中有许多集合类数据结构,提供了丰富的集合api,但是它们对一些复杂的转换处理上依然显得笨重与繁琐,且这些容器对数据处理上并没有提供一些直观便捷的操作,于是后来commons、guava诞生了,他们为方便迭代并处理集合数据而生,但是若期望对...
herman 7年前 (2017-08-29) 3259浏览 0评论
Java.util.Optional是Java 8新增的类,作为一个持有实例的容器类,可以帮我们把判空的代码写得更优雅,并且该类还提供了一些实用的api,官方文档在这里。本文将结合java 8的特性来讲解Java.util.Optional的各种...
herman 8年前 (2016-11-10) 3256浏览 0评论
JDK1.8的新特性有很多,例如:lambda表达式,方法引用以及多重Annotation,之后你将会学到最新的API上的改进,比如流,函数式接口,Map以及全新的日期API等。本文将详细讲解java8的各种新特性。 java8 接口的默认...