这篇文章主要介绍“JDK1.8的新特性有什么”,在日常操作中,相信很多人在JDK1.8的新特性有什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JDK1.8的新特性有什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
之所以备受关注的最原因是,JDK1.8 所做的改变,在许多方面比 Java 历史上任何一次改变都深远。而且好消息是,这些改变会让你编起程来更容易,用不着再写类似下面这种啰嗦的程序了。(对 peopleList 中人的年龄进行排序)
Collections.sort(peopleList, new Comparator<People>() { public int compare(People o1, People o2) { if (o1.getAge() > o2.getAge()) { return 1; } 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 的原因了吧。因为它给我们开发、系统带来前所未有的好处,在后续的使用中,你会发现它的种种优点。
到此,关于“JDK1.8的新特性有什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。