2023 年學(xué)習(xí) Java 的三個理由【確實干貨】

Java 具有功能強大、多樣化、可拓展、有趣的特點。這就是 Java 為什么被我們廣泛使用,也是我們?nèi)绾握_使用它的方式。

Java 是在 1995 年發(fā)布的,起初它是專有的,但在 2007 年,Java 基于 GPL 協(xié)議被開源發(fā)布了。如果想要理解是什么使得 Java 變得非常重要,你就必須理解它聲稱要解決的是什么樣的問題,從而你就能理解它讓開發(fā)者和用戶受益的原因和方式。

理解 Java 解決了什么問題的最好方式就是進行軟件開發(fā),當(dāng)然啦,如果不做開發(fā),僅僅只是使用軟件也會是一個很好的開始。作為一名開發(fā)人員,當(dāng)你將在自己的本地計算機上運行良好的軟件部署到其他計算機上運行時,一些稀奇古怪的麻煩可能就出現(xiàn)了,從而導(dǎo)致軟件可能無妨正常運行。軟件本應(yīng)正常工作,但每個程序員都明白,一些問題總是會被忽視。當(dāng)你在另一個操作系統(tǒng)上嘗試運行該軟件時,情況就變得更加復(fù)雜了。這也是為什么在每一個軟件的獲取頁面上都會有針對不同的操作系統(tǒng)有對應(yīng)下載按鈕的原因:Windows 的、macOS 的、Linux 的、移動端的、甚至許多其他操作系統(tǒng)環(huán)境的下載選項。
作為一名用戶,一個典型的場景是你想下載一些優(yōu)秀的軟件,但它卻不適用于你的平臺。遺憾的是這樣的情況仍然發(fā)生在當(dāng)下非常先進的計算機上,它們可以在計算機中運行虛擬機,通過仿真使老式視頻游戲保持活力,甚至可以放在你的口袋里,但軟件交付實際上相當(dāng)困難。
有沒有更好的辦法?可能會有吧。
1、一次編碼,任意環(huán)境都能跑通
令人驚訝甚至是失望的是,代碼是特定于操作系統(tǒng)和環(huán)境的。代碼需要從對人友好的高級程序設(shè)計語言編譯成機器語言,即被設(shè)計可以用于讓 CPU 響應(yīng)的一系列二進制指令。在先進的計算機世界中,我們很難理解為什么不能僅僅只要編寫代碼,就能將它發(fā)送給任何一個想要運行它的平臺,無需擔(dān)憂它們正處在什么樣的平臺中。
Java 可以解決這種不協(xié)調(diào)的問題。它的代碼是可以跨平臺進行工作的,在任何運行它的系統(tǒng)上都執(zhí)行相同的工作。Java 實現(xiàn)這一壯舉的方法起初是有悖常理的。在某種程度上,Java 只與一臺計算機兼容。奇怪的是,這臺電腦實際上并不存在。Java 代碼的目標計算機是Java 虛擬機(JVM)。這是一個由 Java 的創(chuàng)建者編寫的程序,可用于你能想到的任何計算機設(shè)備。只要你安裝了它,你運行的任何 Java 代碼都會由你計算機中的這臺“虛擬”計算機進行處理。Java 代碼會由 JVM 執(zhí)行,JVM 向你的計算機發(fā)送適當(dāng)?shù)奶囟ㄓ谄脚_的指令,因此所有工作在每個操作系統(tǒng)和架構(gòu)上都是一樣的。
當(dāng)然,Java 使用的方法并不是這里的真正的賣點。大多數(shù)用戶和許多開發(fā)人員并不關(guān)心軟件兼容性是如何實現(xiàn)的,只關(guān)心它是否具備兼容性。許多語言都承諾提供跨平臺的功能,通常情況下,這個承諾最終都是真的,但是這個過程并不總是容易實現(xiàn)的。編程語言必須針對其目標平臺進行編譯,腳本語言需要特定于平臺的解釋器,而且兩者都很難確保對底層系統(tǒng)資源的一致訪問??缙脚_支持變得越來越好,庫可以幫助轉(zhuǎn)換路徑、環(huán)境變量和設(shè)置,并且一些框架(特別是 Qt)在彌補外設(shè)訪問的差距方面做了很多工作。但是,Java 始終可靠地提供它的兼容性。
2、明智的代碼
Java 的語法即使是在最好的方面也很無聊。如果你把所有流行的編程語言都放在一個搖滾杯中,那么你會得到 Java。通過觀察 Java 編寫的源代碼,你或多或少會均勻地看到所有特定的編程表達方式。括號表示函數(shù)和流程控制的范圍、變量在使用前被明確地聲明和實例化,并且表達式具有清晰一致的結(jié)構(gòu)。
我發(fā)現(xiàn) Java 學(xué)習(xí)過程中通常會鼓勵自學(xué)成才的程序員使用結(jié)構(gòu)化程度較少的語言編寫更精煉的代碼。從網(wǎng)上學(xué)習(xí)的源代碼中收集到的技術(shù)中,有許多“基本”編程經(jīng)驗是你無法學(xué)到的,比如以 Java 公開字段的風(fēng)格進行全局變量聲明、正確地預(yù)測和處理異常、使用類和函數(shù)、和許多其他的技術(shù)。從 Java 借鑒的一點小改動可以產(chǎn)生很大的不同。
3、腳手架和支持
流行的編程語言都有很好的支持系統(tǒng),這也是使得其變成流行語言的原因。它們都有很多文檔資料,有針對它們的集成開發(fā)環(huán)境或 IDE 擴展、示例代碼、免費和付費培訓(xùn)和開發(fā)者社區(qū)。在另一方面,當(dāng)你在嘗試做某事遇到困難時,似乎沒有任何編程語言有足夠的支持。
我不能說 Java 可以擺脫這兩個普遍但又相互矛盾的事實。盡管如此,我發(fā)現(xiàn)當(dāng)我需要一個 Java 庫時,我必然能為給定的任務(wù)找到多個選項。通常我不想使用一個庫的原因是我不喜歡它的開發(fā)人員如何實現(xiàn)我需要的功能,它的許可證與我喜歡的有所不同,或者有其他瑣碎的爭議點。當(dāng)一門語言得到大量支持時,我就會很多的選擇性。我可以從許多合適的解決方案中選擇一個最能滿足我需求的,不論我的需求多么微不足道都能被最好得滿足。
更好的是,圍繞 Java 有一個健康的基礎(chǔ)設(shè)施。像 Apache Ant、Gradle和Maven等工具可以幫助管理構(gòu)建和交付的過程。像Sonatype Nexus等服務(wù)幫助實現(xiàn)監(jiān)控的安全性。Spring和Grails使 Web 開發(fā)變得更加容易,而Quarkus和Eclipse Che有助于云上的開發(fā)。
在接觸 Java 語言本身時,你甚至可以選擇使用什么樣的版本。OpenJDK提供經(jīng)典的、官方的 Java,而Groovy是一種類似于腳本語言的簡化方法(你可以把它比作 Python),而Quarkus提供了一個容器優(yōu)先開發(fā)的框架。
還有很多,但現(xiàn)在已經(jīng)足以說明 Java 是一個完整的生態(tài)了,無論你想在其中尋找什么。
此外,簡單易學(xué)
事實證明,Java 對我和各行各業(yè)的許多開發(fā)人員來說是一個明智的解決方案。以下是我喜歡使用 Java 的一些原因。
你可能聽說過或推斷出 Java 是一種“專業(yè)”語言,只適用于笨重的政府網(wǎng)站,專供“真正的”開發(fā)人員使用。千萬不要被 Java 25 年以來的各種名聲所迷惑!它的可怕程度只有它名聲的一半,這意思是,并不比其他任何語言更可怕。
編程很困難的這件事是無法回避的,它要求你基于邏輯進行思考,學(xué)習(xí)一種比母語表達方式更少的新語言,要你弄清楚如何解決困難的問題,使它們可以使用你的程序完成自動化的執(zhí)行,沒有語言可以避免這些問題。
然而,編程語言的學(xué)習(xí)曲線的差異令人驚訝。有些一開始很容易,但當(dāng)你開始探索細節(jié)時就會變得復(fù)雜。換句話說,打印“hello world”可能只需要一行代碼,但當(dāng)你學(xué)習(xí)到了類和函數(shù), 你相當(dāng)于開始重新學(xué)習(xí)這門語言(或者至少是它的數(shù)據(jù)模型)。Java 從一開始就是 Java,一旦你學(xué)會了它,就可以使用它的許多技巧和便利。
簡而言之: 去學(xué)習(xí) Java 吧!它具有功能強大、多樣化、可拓展、有趣的特點。為了給你提供幫助, 下載我們的 Java 備忘單, 它包含你在開發(fā)前十個項目時需要的所有基本語法。在那之后,你就不再需要它了,因為 Java 具有完美的一致性和可預(yù)測性。來享受它吧!