JDK1.8新特性(二):为什么要关注JDK1.8

简介: 版本的不断更新、升级,无非是对bug的修复、新功能的增加、优化等,在JDK版本中,JDK1.8变得备受关注,也成了各大公司面试中常常被问及的话题。


自1996年JDK1.0(Java1.0)发布以来,Java已经受到了学生、程序员、整个软件行业人员等一大批活跃用户的欢迎。这一语言极富活力,不断被用在大大小小的项目里。从Java1.1(1997年) 一直到Java 7(2011年),Java通过增加新功能,不断得到良好的升级。Java 8则是在2014年3月发布的……


版本的不断更新、升级,无非是对bug的修复、新功能的增加、优化等,在JDK版本中,JDK1.8变得备受关注,也成了各大公司面试中常常被问及的话题。


代码更少、更简洁

之所以备受关注的最原因是,JDK1.8所做的改变,在许多方面比Java历史上任何一次改变都深远。而且好消息是,这些改变会让你编起程来更容易,用不着再写类似下面这种啰嗦的程序了。(对peopleList中人的年龄进行排序)


Collections.sort(peopleList, newComparator<People>() {
publicintcompare(Peopleo1, Peopleo2) {
if (o1.getAge() >o2.getAge()) {
return1;
        } else {
return-1;
        }
    }
});


而在JDK1.8里,你可以编写如下更为简洁的代码:

Collections.sort(peopleList, Comparator.comparingInt(People::getAge));


自从接触JDK1.8后,这样类似简洁的代码你将会非常喜欢的。


更好的利用多核处理器

JDK1.8对多核处理器有更好的处理:平时我们用的电脑或服务器的CPU都是多核的,但是,绝大多数现有的Java程序都只使用其中一个内核,而其他的都是处于闲置状态。


在JDK1.8之前,可能有人会告诉你,必须使用多线程才能使用多个内核。问题是,线程用起来比较难,也容易出现错误。从JDK的版本演变来看,它一直致力于让并发编程更容易、出错更少。JDK1.0里有线程和锁,甚至有一个内存模型——这是当时的最佳做法,但事实证明,不具备专门知识的项目团队很难可靠地使用这些基本模型。JDK1.5添加了如线程池和并发集合。JDK1.7添加了分支/合并(fork/join)框架,使得并行变得更实用,但仍然很困难。而JDK1.8中对并行有了一个更简单的新思路,但需要遵循一些规则。


JDK1.8提供了一个新的API(称为“流”,Stream),它支持许多处理数据的并行操作,其思路和在数据库查询语言中的思路类似:用更高级的方式表达想要的东西,而由“实现”(在这里

是Streams库)来选择最佳低级执行机制。这样就可以避免用synchronized编写代码,这一代码不仅容易出错,而且在多核CPU上执行所需的成本也比你想象的要高。


速度更快

如果你的开发环境装的就是JDK1.8,那么你就已经在无形中享用JDK1.8的新特性了。


JDK1.8对于底层的数据结构上做了些更新和改动,对垃圾回收机制(内存结构)也做了一定的改变,以及对于并行/并行流,并行的操作能够很容易的进行使用,对并行做了一些扩展和支持。


我们一起了解一下它是怎么让底层的数据结构“速度更快”呢?我们都知道底层数据结构最核心的一个就是HashMap,那么它对HashMap做了怎样的改动呢?


原来的HashMap是怎样的呢?(数组+链表)


1.8之后的HashMap是怎样的呢?(数组+链表+红黑树)


当链表长度太长(默认超过8)时,链表就转换为红黑树。红黑树的改进解决了什么问题呢?


HashMap碰撞处理的优化,针对超长链的检查,时间复杂度从O(n)降到了O(log2n)。


HashMap的优化,只是体现JDK1.8速度更快的典型代表之一,其他优化之处在此就不一一说明。


总结

看了上面这几点,你应该知道为什么要关注JDK1.8的原因了吧。因为它给我们开发、系统带来前所未有的好处,在后续的使用中,你会发现它的种种优点。

目录
相关文章
|
2月前
|
容器
jdk8新特性-详情查看文档
jdk8新特性-详情查看文档
44 3
|
1月前
|
存储 安全 Java
JDK1.8 新的特性
JDK1.8 新的特性
19 0
|
2月前
|
编解码 安全 Java
jdk8新特性-接口和日期处理
jdk8新特性-接口和日期处理
|
3月前
|
Oracle Java 关系型数据库
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
JDK8到JDK29版本升级的新特性问题之未来JDK的升级是否会成为必然趋势,如何理解
|
3月前
|
Oracle 安全 Java
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
JDK8到JDK28版本升级的新特性问题之在Java 15及以后的版本中,密封类和密封接口是怎么工作的
|
2月前
|
Java 编译器 API
JDK8新特性--lambda表达式
JDK8的Lambda表达式是Java语言的一大进步。它为Java程序提供了更多的编程方式,让代码更加简洁,也让函数式编程的概念在Java中得到了体现。Lambda表达式与Java 8的其他新特性,如Stream API、新的日期时间API一起,极大地提高了Java编程的效率和乐趣。随着时间的流逝,Java开发者对这些特性的理解和应用将会越来越深入,进一步推动Java语言和应用程序的发展。
14 0
|
3月前
|
算法 Java iOS开发
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化
JDK8到JDK27版本升级的新特性问题之JDK 17中G1在资源占用方面有何变化
|
2月前
|
Java
安装JDK18没有JRE环境的解决办法
安装JDK18没有JRE环境的解决办法
313 3
|
3月前
|
Java 关系型数据库 MySQL
"解锁Java Web传奇之旅:从JDK1.8到Tomcat,再到MariaDB,一场跨越数据库的冒险安装盛宴,挑战你的技术极限!"
【8月更文挑战第19天】在Linux上搭建Java Web应用环境,需安装JDK 1.8、Tomcat及MariaDB。本指南详述了使用apt-get安装OpenJDK 1.8的方法,并验证其版本。接着下载与解压Tomcat至`/usr/local/`目录,并启动服务。最后,通过apt-get安装MariaDB,设置基本安全配置。完成这些步骤后,即可验证各组件的状态,为部署Java Web应用打下基础。
57 1
|
3月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
690 4