内容简介:代码Review是我工作中的一部分,在这个过程中我发现一个现象,尽管大家很少在使用Java6及以前的版本了,Java8已经是绝对的主流了,但很多人还在用Java6以前的老习惯写代码,其实,现在已经是9102年了,从Java7发布到现在已经快8年了,从Java8发布到现在也已经超过5年的时间了,所以这就是我在标题里给下面管中窥豹,举几个小例子。
代码Review是我工作中的一部分,在这个过程中我发现一个现象,尽管大家很少在使用 Java 6及以前的版本了,Java8已经是绝对的主流了,但很多人还在用Java6以前的老习惯写代码,其实,现在已经是9102年了,从Java7发布到现在已经快8年了,从Java8发布到现在也已经超过5年的时间了,所以这就是我在标题里给 新 加了引号的原因。
下面管中窥豹,举几个小例子。
STREAM - 如何获取集合中的第一个符合条件的元素
其实,STREAM API的特性还算是被用的比较多的,但还是有很多人拒绝使用,或者部分使用。比如获取集合中的第一个符合条件的元素改怎么写呢?下面是用Stream的方式写的,是不是很简洁明了?
. .findFirst();
System.out.println("the first is: " + first.get());
输出 the first is: 8
有人担心这样做会影响性能,因为执行了一次filter会来一次循环得到一个新集合,然后再执行一次循环实现findFirst操作,这么想,可能是因为按以前for循环的思路脑补了一下查找的过程,其实并不是,我们可以验证一下:
. .peek(num ->
System.out.println("will filter " + num))
.filter(x -> x > 5)
.findFirst()
.get();
输出
will filter 2 will filter 8 8
和以前for循环找到后break的效果是一样的。
DATE - 也许你再也不需要一堆DateUtils了
Java8之前,日期和时间的API非常难用,有时候在一个代码工程中会看到不只一个DateUtils。Java8引入了新的Date Time API,除了提供了国际化和线程安全的支持外,更提供了很多方便好用的方法,基本上你不在需要使用DateUtils了。
感受一下:
LocalDateTime也是一样的,有很多方便的方法。
之前Date竟然没有设计成不可变的,一直是Java语言被吐槽的一个地方。现在LocalDate是不可变的,绝对的线程安全。而且提供了一系列的with方法,可以轻松构建一个新的对象:
输出
2019-01-07 2019-01-02
另外,不知道你注意到没有,月份不是从0开始了,是不是人性化了很多?
RANDOM - 如何获得一个区间内的随机整数
说实话,上面两点用的人还是非常多的。那为了凑够三点,也为了有点新鲜感,说一个很多人不知道的。
突然想到一个词 :"狗尾续貂"。
如何获得一个区间内的随机整数?
这个 ThreadLocalRandom 是在Java7里引入的。
那在Java7之前是怎么写的呢?
是不是新的写法好理解多了?不过老的写法有个别的场景下还是有些用的,比如需要指定"种子"的时候。
新的特性会与日俱增,老年程序员们坚持渐进增强的学习才能保持不落户,才能再为祖国编程30年。
「小得」是把日常工作中、学习中一些小的技术收获记录下来。这是第4篇。
长按2秒,识别二维码,关注我
以上所述就是小编给大家介绍的《「小得104」大龄程序员可能还不知道的Java中的几个"新"特性》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Design and Analysis of Distributed Algorithms (Wiley Series on P
Nicola Santoro / Wiley-Interscience / 2006-10-27 / USD 140.95
This text is based on a simple and fully reactive computational model that allows for intuitive comprehension and logical designs. The principles and techniques presented can be applied to any distrib......一起来看看 《Design and Analysis of Distributed Algorithms (Wiley Series on P》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
URL 编码/解码
URL 编码/解码