Java这么优秀,我固然要深刻啦

关注 ▲程序员小跃▲ 和优秀的你,一块儿奔跑php

这是程序员小跃的第 149 篇原创分享
java

做者 l 程序员小跃程序员

来源 l 程序员小跃(ID:runningdimple)编程

今天开始,跃哥将和去年阅读《Head First 设计模式》差很少的模式来,和你们一块儿学习《Java 实战》的内容。经过前一本书,那本书跃哥二刷,因此读完以后对设计模式又有了深入的理解,以致于后续学习极客时间上的设计模式专栏,压力就没那么大了。
设计模式

因此此次我又经过《Java 实战》来对 Java8 以后的特性进行学习,将是一件很棒的事情。为何咱们要学习 Java8,由于 Java8 版本新增了不少特性,将 8 以前和 8以后有了一个分水岭,学习了这些新特性,咱们写代码的效率会更好,软件运行的效率也会更高,升职加薪嘛,那也是必然的。浏览器

你入门的是Java 哪一个版本?

首先,跃哥问你们一个问题,你的第一个 Java 版本是什么呢?安全

跃哥本身先说。我是在大二的时候接触的 Java,个人第一个版本是 Java 6。由于我在此以前入门过 C、C++,有了面向过程和面向对象的基础,因此初次学习 Java 语言的时候,并无想象中那么难。其实也是由于吃过 C、C++苦,一看到 Java 就兴奋了。架构

可是,Java 也有不一样的地方,学校里的 Java 入门是从零开始,其实如今不少书籍也是如此,从下载 JDK 到配置安装环境,而后使用txt 文本新建我人生中的第一个 Java 文件,而且用 javac 命令编译,运行,整个过程如今提及来容易,第一次仍是有点懵逼。并发

那么,你的第一个 Java 版本是什么呢?若是是 Java8 以前的,那你学习本书的时候,须要转变不少思想,由于 Java8 使用起来很方便;若是你用的是 Java 8 以后的,好比 Java 11(跃哥此次特地安装了 11,来跟上脚步,11 是最新的长支持版本),那你对这本书的内容并不会陌生,由于你初学的时候,就自带了这些语法,你是在复习。编程语言

可是此次跃哥并不考虑使用记事本,用命令行来编译 Java,毕竟我们不少都已经入门了 Java,咱们此次使用 IDEA 来完成一系列操做,谁让 IDEA 这么香啊,哈哈。《终于,我也到了和Eclipse说再见的时候,难说再见

Java8 威力初探

今年是 Java 的 25 周年,自从 Java 问世以来,就受到了学生、项目经理和程序员等一大批活跃用户的欢迎。这一语言极富活力,不断被用在大大小小的项目里。尤为是如今大数据,高并发,数据中台等的影响下,Java 微服务领域更是火爆。

咱们也知道,Java 如今是每半年更新一个版本,它经过增长新功能,获得良好的升级。其实 Java8 在 2014 年 3 月就发布了,可是如今还有不少小伙伴用的是老式的语法来实现功能,没有发挥出巨大的威力。

举个例子,咱们须要对一个苹果列表进行排序,按重量排序。用老式的语法,你可能会写出以下代码:

Collections.sort(inventory, new Comparator<Apple>() {
    public int compare(Apple a1, Apple a2) {
        return a1.getWeight().compareTo(a2.getWeight());
    }
)

可是,经过Java 8,你能够编写更简洁的代码,实现更高的效率。以下:

inventory.sort(comparing(Apple::getWeight));

哈哈,你没看错,就是这么简单,就完成了排序,从 3 行代码缩减到了 1 行代码,香不香。

Java 8 对硬件也有影响:如今咱们用的 CPU 都是多核的,在 Java8 以前咱们必须利用线程才能很好地利用多核 CPU 的性能;不然程序就是在单核上使用,白白浪费了多核的性能。

可是 Java8 以后,对并行有了一个更简单的思路,发挥了更大的威力。简答描述就是,咱们能用更简洁的代码,且更简单地使用了多核处理器。跃哥先来一个总结,后续会在咱们的学习中逐步使用了解他的精髓,咱们主要用到 Java8 的Stream API向方法传递代码的技巧接口中的默认方法*,这些都能简化咱们的代码,有很好利用电脑的性能,想一想都兴奋。

Java 为何一直在变?

跃哥在这里又问你们一个问题,你知道如今的编程语言有多少吗?除了你们熟知的 C、C++、Java、Python、C#、PHP、Swift、Kotlin......咱们熟知的 TIOBE 编程语言排行榜里就有 N 种。在 1966 年当时著名的计算机科学家彼得·兰丁在一篇标志性论文中写道,当时已经有 700 种编程语言了,恐怖吧。

因此,编程语言要在这么多竞争中脱颖而出,实际上是很难的一件事情。编程语言也是一个生态,新的语言出现,旧语言就会被取代,除非后者演变地很快,能跟上时代发展的节奏。Java 就具有了这种特性,在过去的20几年里,Java 成功地霸占了编程生态系统中的一大块,同时替代了竞争对手语言,身为一名 Javaer,仍是挺骄傲,挺自豪的。

Java 由于“一次编写,随处运行”模式,以及早期浏览器安全地执行 Java 小应用的能力让它占领了大学市场,毕业生随后把它带进了业界。后来机器变得愈来愈快,程序员的时间变得愈来愈宝贵,因此 Java 的面向对象模型发挥了重要的做用,被各类使用。

跃哥以前学习 Java,是 Android 开发的须要,如今 Android 是全球使用至关普遍的手机操做系统,编写 Android App 大有人在,有很大一部分也是使用的 Java;还有数据请求愈来愈多,数据中台,微服务的出现,让 Java 在这方面有了很大的发展;以及一些良好的 Java 社群支持,因此 Java 成为了使用普遍的语言。

这些还不够,Java8 的出现,最要的好处在于它提供了更多的编程工具概念,能以更快、更简洁、更易于维护的方式解决新的或现有的编程问题。这也是我学习 Java 实战,学习新特性的缘由。由于这些新特性,能让你有更足的底气,编写更好的程序,哈哈。

一块儿奔跑

讲了这么多,其实仍是想对在 Java 编程路上行走的同窗们说一声:赶忙掌握Java 8 以后的一些特性。从文中举例的排序,就能看出 Java8 对代码行数的减小,对效率的提高。

                       

还有,提到的 Stream API、Lambda 表达式、函数式编程这些能让多核的CPU 发挥出更大的威力,处理更多的数据,让效率提高成为可能。

并且,Java 社区如今频繁更新,最新的已经到了 Java 14,只为适应社会的进步,时代的发展,若是你还不会 Java8 的新特性,你以为你对得起本身是一位 Javaer 么。

来吧,和跃哥一块儿学习 Java 新特性,一块儿在Java 的路上走得更远。

跃哥一直都有视频号的,后续视频号里也会同步一些学习的心得,欢迎你们一块儿来看看,提提意见。

做者:程序员小跃,前华为 Android 开发,现游戏公司 Java 架构,奔跑中的技术人!

0、六月我在工做中蜕变,勤奋小人打架终于赢了

以为不错点“在看”!