「小得104」大龄程序员可能还不知道的Java中的几个"新"特性

栏目: Java · 发布时间: 6年前

内容简介:代码Review是我工作中的一部分,在这个过程中我发现一个现象,尽管大家很少在使用Java6及以前的版本了,Java8已经是绝对的主流了,但很多人还在用Java6以前的老习惯写代码,其实,现在已经是9102年了,从Java7发布到现在已经快8年了,从Java8发布到现在也已经超过5年的时间了,所以这就是我在标题里给下面管中窥豹,举几个小例子。

代码Review是我工作中的一部分,在这个过程中我发现一个现象,尽管大家很少在使用 Java 6及以前的版本了,Java8已经是绝对的主流了,但很多人还在用Java6以前的老习惯写代码,其实,现在已经是9102年了,从Java7发布到现在已经快8年了,从Java8发布到现在也已经超过5年的时间了,所以这就是我在标题里给 加了引号的原因。

「小得104」大龄 <a href='https://www.codercto.com'>程序员</a> 可能还不知道的Java中的几个

下面管中窥豹,举几个小例子。

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篇。

「小得104」大龄程序员可能还不知道的Java中的几个

长按2秒,识别二维码,关注我


以上所述就是小编给大家介绍的《「小得104」大龄程序员可能还不知道的Java中的几个"新"特性》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

设计沟通十器

设计沟通十器

Daniel M. Brown / 樊旺斌 / 机械工业出版社 / 2008-12 / 49.00元

本书提供了网站设计时所需的可交付文档资料包括:概念模型,站点地图,可用性报告等,这些文档资料是设计人员和客户进行交流的主要工具。本书深入讨论了文档推介和风险规避技巧,向你展示了如何将文档资料按要求制作成有效的交流工具。 本书内容全面,结构清晰,讲解详细。可作为网站设计人员的参考用书。 关于网站设计的多数讨论好像都着眼于流程的创建,然而,要想把概念变为现实,需要一整套强大的可交付文档资料......一起来看看 《设计沟通十器》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具