Java这么优秀,我当然要深入啦

互联网全栈架构

共 3173字,需浏览 7分钟

 ·

2020-08-05 21:49

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

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

作者 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() {    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 么。

1. 人人都能看懂的 6 种限流实现方案!

2. 一个空格引发的“惨案“

3大型网站架构演化发展历程

4Java语言“坑爹”排行榜TOP 10

5. 我是一个Java类(附带精彩吐槽)

6. 看完这篇Redis缓存三大问题,保你能和面试官互扯

7. 程序员必知的 89 个操作系统核心概念

8. 深入理解 MySQL:快速学会分析SQL执行效率

9. API 接口设计规范

10. Spring Boot 面试,一个问题就干趴下了!



扫码二维码关注我


·end·

—如果本文有帮助,请分享到朋友圈吧—

我们一起愉快的玩耍!



你点的每个赞,我都认真当成了喜欢

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报