前言
既然要學習一門技術,那么就先來了解下它的歷史,我們為什么要使用它,以及我們能用它來干啥。
歷史背景
1990 年代初,Sun 公司的詹姆斯·高斯林等人為了實現電視機、電話、鬧鐘等家用電器的控制和通信,開發了一套用于設置在家用電器等小型系統中的編程語言。在當時,這門語言被命名為 Oka。但由于市場需求不高,所以該計劃被逐漸放棄。
隨著 1990 年代互聯網的發展,Sun 公司發現 Oka 語言在互聯網中的應用前景廣泛。于是決定對 Oka 進行改造,并在 1995 年 5 月以 JAVA 的名義正式發布。
隨著互聯網的迅猛發展,Java 也得以逐漸成為重要的網絡編程語言,詹姆斯·高斯林也被大家公認為 Java 之父。
到了 2009 年, Sun 公司被 Oracle 公司所收購,自此 Java 成為 Oracle 公司的一大產品直至今日。
以下是截止到本文寫作時間(2022 年 7 月 23 日)Java 的歷史年表,累計經過了 18 次主要版本更新,目前來到了 Java SE 18。而 Java SE 19 早期預覽版也已經流出,根據官方給出的發布時間表,大概會在 9 月份發布 Java SE 19 的 GA 版本。不過雖然 Java 已經經歷了這么多版本的更新,但國內目前用的最多的應該還是 Java 1.8 版本。而出于對穩定性的考慮,企業開發更喜歡 LTS 版本,這也是為什么至今 Java 1.8 還占有如此高的市場比例。
版本 |
發布日期 |
主要事件 |
JDK Beta |
1995 |
Java 語言發布,用 Java 實現的瀏覽器和 Java Applet 被大量應用 |
JDK 1.0 |
1996 年 1 月 |
奠定了JDK、JRE、JVM 的體系結構 |
JDK 1.1 |
1997 年 2 月 |
加入 JIT,提升 JDK 效率 |
J2SE 1.2 |
1998 年 12 月 |
確立 J2SE、J2EE、J2ME 產品結構 |
J2SE 1.3 |
2000 年 5 月 |
內置 HotSpot JVM |
J2SE 1.4 |
2002 年 2 月 |
XML 處理、斷言、支持正則表達式 |
J2SE 5.0 |
2004 年 9 月 |
靜態導入、泛型、for-each 循環、自動拆,裝箱、枚舉、可變參數 |
Java SE 6 |
2006 年 12 月 |
提供動態語言支持、同步垃圾回收 |
Java SE 7 |
2011 年 7 月 |
字符串的switch語句、多異常捕抓 |
Java SE 8 (LTS) |
2014 年 3 月 |
Lambda表達式 |
Java SE 9 |
2017 年 9 月 |
輕量級 json API、垃圾收集機制更新 |
Java SE 10 |
2018 年 3 月 |
局部變量類型推斷,Java 后續版本快速迭代更新 |
Java SE 11 (LTS) |
2018 年 9 月 |
常用類增強,Java 11 是繼 Java 8 之后的首個長期支持本版 |
Java SE 12 |
2019 年 3 月 |
switch 表達式增強 |
Java SE 13 |
2019 年 9 月 |
文本塊支持 |
Java SE 14 |
2020 年 3 月 |
instanceof 支持模式匹配 |
Java SE 15 |
2020 年 9 月 |
EdDSA 數字簽名算法、 密封類、隱藏類 |
Java SE 16 |
2021 年 3 月 |
啟用 C++ 14 語言特性、Vector API |
Java SE 17 (LTS) |
2021 年 9 月 |
恢復總是嚴格的浮點語義、增強型偽隨機數生成器 |
Java SE 18 |
2022年 3月 |
默認 UTF-8 編碼、代碼片段、簡單的網絡服務器 |
為什么使用 Java
既然編程語言有那么多,那我們為什么要使用 Java 語言呢?以下就來看看 Java 被廣泛使用的幾個原因。
- 世界范圍內流行,國內使用最為廣泛的編程語言之一。
以下是截止 2022 年 7 月 TIOBE 統計的編程語言排行榜,可以看到 Java 處于前三的位置。而從歷年編程語言所占市場份額趨勢圖也可以看出,Java 雖然沒有一直獨占鰲頭,但絕大數時間都是占據領先地位。
- 移植性高
由于 Java 中 JVM 的特性,所以能夠做到一次編譯,隨處運行,其移植性也就更高。
- 開發社區完善
社區完善也是 Java 為什么使用多的原因,各種封裝 API,比起 C、C++ 語言使用起來更加方便。雖然 Python/ target=_blank class=infotextkey>Python 的封裝程度更高,但是其效率比起 Java 卻打了折扣。畢竟封裝程度和效率是成反比的,Java 兼具了效率高和使用方便的特點,所以更受人們青睞。
Java 能做什么
Java 應用廣泛,在我們日常中就能經常見到由 Java 所開發的程序。常見的的應用應用領域如下:
- 桌面 GUI 應用開發
- 服務器系統
- 企業級應用開發
- 大數據開發
- 移動應用開發
- 游戲開發
- ……
Java 技術體系
根據傳統意義上 Sun 官方定義, Java 技術體系的組成主要就是我們常說的 JDK,即以下三部分:
- Java 程序設計語言
- Java 虛擬機
- Java API 類庫
同時,Java 技術體系又可以主要分為以下 3 個平臺。
- Java SE
Java Standard Edition,即 Java 標準版。主要是 Java 技術的核心和基礎,要想學好 Java,那么首先你得掌握好這部分。主要運行在桌面級應用,如 windows 應用程序。
- Java EE
Java Enterprise Editon,即 Java 企業版。從它的名字就不難看出,這是 Java 針對企業級應用開發所提供的一套解決方案,主要用于架設高性能企業網站。
- Java ME
Java Micro Edition,即 Java 小型版。主要是 Java 針對移動設備應用所提供的一套解決方案,主要運行在手機、pad 等移動端。
總結
本文主要從 Java 歷史背景、選擇 Java 的理由、Java 能做什么、Java 技術體系等 4 方面對 Java 語言做了一個簡單介紹。接下來的文章我們就來看看,如何搭建 Java 的開發環境以及實現一個簡單的入門程序。