Fork me on GitHub

随笔分类 -  java

java相关教程
摘要:[toc] JDK 14的新特性:Lombok的终结者record 简介 自从面向对象产生之后,程序界就开始了新的变化,先是C发展到了C++,后面java横空出世,大有一统江湖的趋势。 面向对象凭借其结构化的特点和在大型项目中的优势,一路蓬勃发展到今。面向对象不是不好,但是太繁琐。 比如我们要定义一 阅读全文
posted @ 2020-04-30 06:51 flydean 阅读(2510) 评论(0) 推荐(0) 编辑
摘要:[toc] 自定义parallelStream的thread pool 简介 之前我们讲到parallelStream的底层使用到了ForkJoinPool来提交任务的,默认情况下ForkJoinPool为每一个处理器创建一个线程,parallelStream如果没有特别指明的情况下,都会使用这个共 阅读全文
posted @ 2020-04-29 07:16 flydean 阅读(5200) 评论(0) 推荐(0) 编辑
摘要:[toc] java 8中构建无限的stream 简介 在java中,我们可以将特定的集合转换成为stream,那么在有些情况下,比如测试环境中,我们需要构造一定数量元素的stream,需要怎么处理呢? 这里我们可以构建一个无限的stream,然后调用limit方法来限定返回的数目。 基本使用 先看 阅读全文
posted @ 2020-04-29 07:12 flydean 阅读(434) 评论(0) 推荐(0) 编辑
摘要:[toc] java 8中 predicate chain的使用 简介 Predicate是一个FunctionalInterface,代表的方法需要输入一个参数,返回boolean类型。通常用在stream的filter中,表示是否满足过滤条件。 ~~~java boolean test(T t) 阅读全文
posted @ 2020-04-28 07:41 flydean 阅读(808) 评论(0) 推荐(0) 编辑
摘要:JDK 14的新特性:更加好用的NullPointerExceptions 让99%的java程序员都头痛的异常就是NullPointerExceptions了。NullPointerExceptions简称NPE,它是运行时异常的一种,也是java程序中最最容易出现的异常。 出现了NullPoin 阅读全文
posted @ 2020-04-28 07:36 flydean 阅读(262) 评论(0) 推荐(0) 编辑
摘要:JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了。可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks仍然是预览特性。 本文要讲的就是JDK14的一个预览特性instanceof的pattern mat 阅读全文
posted @ 2020-04-27 07:38 flydean 阅读(1504) 评论(0) 推荐(0) 编辑
摘要:伴随着2020的寒冬和新冠病毒的肆虐,JAVA迎来了久未已久的JAVA 14。自从2017年JAVA 9发布之后,JAVA的发布版本跟上了敏捷开发的步伐,小步快跑,Java平台发布节奏已从每3年以上的主要版本转变为每6个月发布一次功能。现在,每年的3月和9月都会发布新的版本功能。 三月已过,九月还远吗? 在JAVA 14中,推出了swith的最终版本,并且支持了NVM。 今天本文将会展望一下JAVA 15中会带给我们的新特性 阅读全文
posted @ 2020-04-27 07:30 flydean 阅读(16692) 评论(0) 推荐(2) 编辑
摘要:[toc] 怎么break java8 stream的foreach 简介 我们通常需要在java stream中遍历处理里面的数据,其中foreach是最最常用的方法。 但是有时候我们并不想处理完所有的数据,或者有时候Stream可能非常的长,或者根本就是无限的。 一种方法是先filter出我们需 阅读全文
posted @ 2020-04-26 07:47 flydean 阅读(5045) 评论(0) 推荐(1) 编辑
摘要:[toc] java 8 stream中的Spliterator简介 简介 Spliterator是在java 8引入的一个接口,它通常和stream一起使用,用来遍历和分割序列。 只要用到stream的地方都需要Spliterator,比如List,Collection,IO channel等等。 阅读全文
posted @ 2020-04-26 07:42 flydean 阅读(4822) 评论(1) 推荐(2) 编辑
摘要:[toc] 怎么在java中创建一个自定义的collector 简介 在之前的java collectors文章里面,我们讲到了stream的collect方法可以调用Collectors里面的toList()或者toMap()方法,将结果转换为特定的集合类。 今天我们介绍一下怎么自定义一个Coll 阅读全文
posted @ 2020-04-25 07:58 flydean 阅读(713) 评论(0) 推荐(0) 编辑
摘要:[toc] java 8 stream reduce详解和误区 简介 Stream API提供了一些预定义的reduce操作,比如count(), max(), min(), sum()等。如果我们需要自己写reduce的逻辑,则可以使用reduce方法。 本文将会详细分析一下reduce方法的使用 阅读全文
posted @ 2020-04-25 07:53 flydean 阅读(9869) 评论(1) 推荐(1) 编辑
摘要:[toc] java stream中Collectors的用法 简介 在java stream中,我们通常需要将处理后的stream转换成集合类,这个时候就需要用到stream.collect方法。collect方法需要传入一个Collector类型,要实现Collector还是很麻烦的,需要实现好 阅读全文
posted @ 2020-04-24 07:50 flydean 阅读(16902) 评论(1) 推荐(4) 编辑
摘要:[toc] java关于throw Exception的一个小秘密 简介 之前的文章我们讲到,在stream中处理异常,需要将checked exception转换为unchecked exception来处理。 我们是这样做的: ~~~java static Consumer consumerWr 阅读全文
posted @ 2020-04-24 07:44 flydean 阅读(827) 评论(0) 推荐(0) 编辑
摘要:java 8 lambda表达式中的异常处理 简介 java 8中引入了lambda表达式,lambda表达式可以让我们的代码更加简介,业务逻辑更加清晰,但是在lambda表达式中使用的Functional Interface并没有很好的处理异常,因为JDK提供的这些Functional Inter 阅读全文
posted @ 2020-04-23 07:01 flydean 阅读(13865) 评论(2) 推荐(1) 编辑
摘要:[toc] java 8 Stream中操作类型和peek的使用 简介 java 8 stream作为流式操作有两种操作类型,中间操作和终止操作。这两种有什么区别呢? 我们看一个peek的例子: ~~~java Stream stream = Stream.of("one", "two", "thr 阅读全文
posted @ 2020-04-23 06:57 flydean 阅读(57807) 评论(6) 推荐(13) 编辑
摘要:怎么在java 8的map中使用stream 简介 Map是java中非常常用的一个集合类型,我们通常也需要去遍历Map去获取某些值,java 8引入了Stream的概念,那么我们怎么在Map中使用Stream呢? 基本概念 Map有key,value还有表示key,value整体的Entry。 创 阅读全文
posted @ 2020-04-22 07:33 flydean 阅读(39770) 评论(1) 推荐(1) 编辑
摘要:[toc] 简介 在Stream处理中,我们通常会遇到if/else的判断情况,对于这样的问题我们怎么处理呢? 还记得我们在上一篇文章lambda最佳实践中提到,lambda表达式应该越简洁越好,不要在其中写臃肿的业务逻辑。 接下来我们看一个具体的例子。 传统写法 假如我们有一个1 to 10的li 阅读全文
posted @ 2020-04-22 07:27 flydean 阅读(10247) 评论(0) 推荐(0) 编辑
摘要:Lambda表达式java 8引入的函数式编程框架。之前的文章中我们也讲过Lambda表达式的基本用法。 本文将会在之前的文章基础上更加详细的讲解Lambda表达式在实际应用中的最佳实践经验。 优先使用标准Functional接口 之前的文章我们讲到了,java在java.util.function包中定义了很多Function接口。基本上涵盖了我们能够想到的各种类型。 假如我们自定义了下面的Functional interface 阅读全文
posted @ 2020-04-21 07:22 flydean 阅读(563) 评论(0) 推荐(0) 编辑
摘要:Exchanger是java 5引入的并发类,Exchanger顾名思义就是用来做交换的。这里主要是两个线程之间交换持有的对象。当Exchanger在一个线程中调用exchange方法之后,会等待另外的线程调用同样的exchange方法。 两个线程都调用exchange方法之后,传入的参数就会交换 阅读全文
posted @ 2020-04-21 07:16 flydean 阅读(963) 评论(0) 推荐(0) 编辑
摘要: java 8引入了lambda表达式,lambda表达式实际上表示的就是一个匿名的function。 在java 8之前,如果需要使用到匿名function需要new一个类的实现,但是有了lam 阅读全文
posted @ 2020-04-20 11:15 flydean 阅读(5316) 评论(0) 推荐(0) 编辑