2020年Java程式設計師應該學習的10大技術
對於Java開發人員來說,最近幾年的時間中,Java生態誕生了很多東西。每6個月更新一次Java版本,以及釋出很多流行的框架,如Spring 5、Spring Security 5和Spring Boot 2等,這些都給我們帶來了很大的挑戰。
在2019年初,我認為Java 10還是比較新的,但是,在我學習完所有Java 10的特性之前,Java 11、Java 12、Java 12 已經接踵而至,對於工作繁忙的程式設計師們來說,大多數人都根本沒有時間看這些。基本是都是瞭解一些有用的新特性而已。
Java的版本迭代速度實在是太快了,也帶來了很多有趣的特性,如本地變數型別推斷、switch表示式、文字塊支援等。我在Java 9 ← 2017,2019 Java → 13 ,都發生了什麼?中記錄了這些變化。
Java系第一大框架,Spring亦是如此,很多人的專案還在用Spring Security 3.1 ,甚至不知道Spring 4.0和Spring Security 4.0都有哪些特性。但是,Spring和Spring Security都已經出到了5.0版本。
以下是我列出的2020年Java開發者應該學習的技術:
1、DevOps (Docker and Jenkins)
過去的一年,越來越多的公司正在轉型DevOps,DevOps非常龐大,需要學習很多工具和原理,但你不需要擔心。有大神已經分享了DevOps路線圖(https://github.com/kamranahmedse/developer-roadmap),可以按照這個路線圖以自己的速度學習和掌握DevOps。

如果你是一個有經驗的Java程式設計師,願意學習環境管理、自動化和整體改進,你也可以成為DevOps工程師。
2、Java 9 - Java 15
相信現在很多Java開發人員主要使用的Java版本還是以Java 8為主,雖然Java 9 - Java 13已經推出了有一段時間。
但是作為Java程式設計師,我們可能因為某些原因沒辦法在線上環境真正的進行JDK的升級,但是花一些時間學習Java 9、Java 10、Java 11、Java 12和 Java 13的新特性還是有必要的。
另外,大家可以重點關注一些關鍵特性,如GC相關的特性、對編碼風格有改變的特性等。還有就是Java的LTS版本(Java 8、Java 11)要重點學習。
還要提醒大家一點,在2020年,Oracle還會推出Java 14 和 Java 15!!!如果你在使用Java 7的話,馬上就要被"套圈"了!
3、Spring Framework 5
2017年我們見證了Spring和Java生態系統的許多重大升級,Spring 5.0就是其中之一。 Spring 5 的新反應式程式設計模型、HTTP/2 支援,以及 Spring 通過 Kotlin 對函數語言程式設計的全面支援這些都值得我們好好了解一下。
4、Spring Security 5.0
Spring Security 5.0 提供了許多新功能,並支援 Spring Framework 5.0,總共有 400 多個增強功能和 bug 修復。在Spring Security 5.0.0之前,密碼是明文儲存,十分不安全。因為這一次釋出的是大版本,所以我們決定使用更安全的密碼儲存方式。 Spring Security 5.0.0的主要亮點在於它只需要最小化的JDK 8、反應式安全特性、OAuth 2.0(OIDC)和現代密碼儲存。
5、Spring Boot 2
Spring Boot 2.0 基於 Spring 5 Framework ,提供了 非同步非阻塞 IO 的響應式 Stream 、非堵塞的函式式 Reactive Web 框架 Spring WebFlux等特性。很多使用過SpringBoot的人都知道,使用SpringBoot搭建Web應用真的是又快又好,相信Spring Boot 2會帶來更多驚喜。
6、Hadoop、Spark 和 Kafka
另外在2020年Java程式設計師需要學習的是大資料相關的知識。特別是Apache Spark 和 Kafka兩個框架。

如果你也想在2020年學習大資料,也一定繞不開Hadoop生態。
7、Elasticsearch
全文搜尋屬於最常見的需求,開源的 Elasticsearch (以下簡稱 Elastic)是目前全文搜尋引擎的首選。維基百科、Stack Overflow、Github 都在使用它。
Elasticsearch是一個基於Lucene庫的搜尋引擎。它提供了一個分散式、支援多租戶的全文搜尋引擎,具有HTTP Web介面和無模式JSON文件。Elasticsearch是用Java開發的,並在Apache許可證下作為開源軟體釋出。
8、ServiceMesh
這兩年很火,火的一塌糊塗。在2019年,但凡是程式設計師相關的大會,如果沒有講ServiceMest的專題,那都不好意思開。
所有人都在說 ServiceMesh;
幾乎沒人知道怎麼落地 ServiceMesh;
但是大家都覺得其他人在大力做 ServiceMesh;
所以大家都宣稱自己在做 ServiceMesh;
這個號稱下一代微服務架構的概念,現在對於大多數人來說根本不知道是啥。只知道很多大廠宣稱自己在做,很多大牛在佈道。
9、Serverless
無伺服器運算(英語:Serverless computing),又被稱為功能即服務(Function-as-a-Service,縮寫為 FaaS),是雲端計算的一種模型。以平臺即服務(PaaS)為基礎,無伺服器運算提供一個微型的架構,終端客戶不需要部署、配置或管理伺服器服務,程式碼執行所需要的伺服器服務皆由雲平臺來提供。這東西,聽上去就很高大上。
10、Kotlin
如果大家有關注Java 13的新特性的話,一定知道推出了字串文字塊的功能,這個功能其實是借鑑的Kotlin,除此之外,最近幾年,Java有很多特性都在借鑑Kotlin,相比較於Java,Kotlin更加簡潔,而且Kotlin編出來的程式碼也可以直接通過JVM執行。
Kotlin是一種在Java虛擬機器上執行的靜態型別程式語言,它也可以被編譯成為JavaScript原始碼。Kotlin的設計初衷就是用來生產高效能要求的程式的,所以執行起來和Java也是不相上下。Kotlin可以從 JetBrains InteilliJ Idea IDE這個開發工具以外掛形式使用。
總結
以上,就是作者總結的建議Java程式設計師在2020年學習的一些技術,希望能給愛學習的你一個參考。其中有一些是一定要學習的,還有一些是看大家的精力情況酌情考慮