【编程语言】Java夯实基础(一):Java的起源与发展
Java的起源與發(fā)展
- 前言
- 一、發(fā)展早期
- 二、版本歷史
- 三、版本迭代
- 總結(jié)
前言
1990年代初,任職于Sun微系統(tǒng)的詹姆斯·高斯林等人開發(fā)了Java語言的雛形Oak,當時的目標是開發(fā)一款應用在家用電器等小型系統(tǒng)上的編程語言。由于這些智能化家電的市場需求沒有預期的高,Sun公司便放棄了這項計劃。隨著1990年代互聯(lián)網(wǎng)的發(fā)展,Sun公司看見Oak在互聯(lián)網(wǎng)上應用的前景,于是決定改造Oak,之后在1995年5月以Java為名稱正式發(fā)布這款編程語言。Java伴隨著互聯(lián)網(wǎng)的迅猛發(fā)展而發(fā)展,逐漸成為重要的網(wǎng)絡(luò)編程語言。
一、發(fā)展早期
這款語言最初只是Sun公司在1990年12月開始研究的一個內(nèi)部項目。Sun公司的一個叫做帕特里克·諾頓的工程師被公司自己開發(fā)的C++和C語言編譯器搞得焦頭爛額,因為其中的API極其難用。帕特里克決定改用NeXT,同時他也得到了進入公司的“Stealth計劃”項目的機會。
“Stealth計劃”后來改名為“Green計劃”,詹姆斯·高斯林和麥克·舍林丹(Mike Sheridan)也加入了帕特里克的工作小組。他們和其他幾個工程師一起在加利福尼亞州門羅帕克市沙丘路的一個小工作室里面研究開發(fā)新技術(shù),瞄準下一代智能家電的程序設(shè)計,Sun公司預料未來科技將在家用電器領(lǐng)域大顯身手。團隊最初考慮使用C++語言,但是很多成員包括Sun公司的首席科學家比爾·喬伊,發(fā)現(xiàn)C++和可用的API在某些方面存在很大問題。
工作小組使用的是嵌入式系統(tǒng),可以用的資源極其有限。很多成員發(fā)現(xiàn)C++太復雜以至很多開發(fā)者經(jīng)常錯誤使用。他們發(fā)現(xiàn)C++缺少垃圾回收系統(tǒng),還有可移植的安全性、分布程序設(shè)計、和多線程功能。最后,他們想要一種易于移植到各種設(shè)備上的平臺。
根據(jù)可用的資金,喬伊決定開發(fā)一種集C語言和Mesa語言于一成的新語言,在一份報告上,喬伊把它叫做“未來”,他提議Sun公司的工程師應該在C++的基礎(chǔ)上,開發(fā)一種面向?qū)ο蟮沫h(huán)境。最初,高斯林試圖修改和擴展C++的功能,他自己稱這種新語言為C++ ++ --[來源請求],但是后來他放棄了。他將要創(chuàng)造出一種全新的語言,被他命名為“Oak”(橡樹),以他的辦公室外的橡樹命名。
就像很多開發(fā)新技術(shù)的秘密工程一樣,工作小組沒日沒夜地工作到了1993年的夏天,他們能夠演示新平臺的一部分了,包括Green操作系統(tǒng),Oak的程序設(shè)計語言,類庫及其硬件。最初的嘗試是面向一種類PDA設(shè)備,被命名為Star7,這種設(shè)備有鮮艷的圖形界面和被稱為“Duke”的智能代理來幫助用戶。1992年12月3日,這臺設(shè)備進行了展示。
同年11月,Green計劃被轉(zhuǎn)化成了“FirstPerson有限公司”,它是一個Sun公司的全資子公司,團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造一種高度交互的設(shè)備感興趣,當時代華納發(fā)布了一個關(guān)于電視機頂盒的征求提議書時,FirstPerson改變了他們的目標,作為對征求意見書的響應,提出了一個機頂盒平臺的提議。但是有線電視業(yè)界覺得FirstPerson的平臺給予用戶過多的控制權(quán),因此FirstPerson的投標敗給了SGI。與3DO公司的另外一筆關(guān)于機頂盒的交易也沒有成功,由于他們的平臺不能在電視工業(yè)產(chǎn)生任何效益,公司被并回Sun公司。
后來由于商標搜索顯示Oak已被一家顯卡制造商注冊。于是Oak被改名為Java。
二、版本歷史
| JDK Beta | 1995 | ? | ? |
| JDK 1.0 | 1996 年 1 月 | ? | ? |
| JDK 1.1 | 1997 年 2 月 | ? | ? |
| J2SE 1.2 | 1998 年 12 月 | ? | ? |
| J2SE 1.3 | 2000 年 5 月 | ? | ? |
| J2SE 1.4 | 2002 年 2 月 | 2008 年 10 月 | 2013 年 2 月 |
| J2SE 5.0 | 2004 年 9 月 | 2009 年 11 月 | 2015 年 4 月 |
| Java SE 6 | 2006 年 12 月 | 2013 年 4 月 | 2018 年 12 月 |
| Java SE 7 | 2011 年 7 月 | 2015 年 4 月 | 2022 年 7 月 |
| Java SE 8 (LTS) | 2014 年 3 月 | Oracle 于 2019 年 1 月停止更新(商用) Oracle 于 2030 年 12 月停止更新(非商用) AdoptOpenJDK 于 2026 年 5 月或之后停止更新 Amazon Corretto 于 2026 年 5 月或之后停止更新 | 2030 年 12 月 |
| Java SE 9 | 2017 年 9 月 | OpenJDK 于 2018 年 3 月停止更新 | 不適用 |
| Java SE 10 | 2018 年 3 月 | OpenJDK 于 2018 年 9 月停止更新 | 不適用 |
| Java SE 11 (LTS) | 2018 年 9 月 | AdoptOpenJDK 于 2024 年 10 月或之后停止更新 Amazon Corretto 于 2027 年 9 月或之后停止更新 | 2026 年 9 月 |
| Java SE 12 | 2019 年 3 月 | OpenJDK 于 2019 年 9 月停止更新 | 不適用 |
| Java SE 13 | 2019 年 9 月 | OpenJDK 于 2020 年 3 月停止更新 | 不適用 |
| Java SE 14 | 2020 年 3 月 | OpenJDK 于 2020 年 9 月停止更新 | 不適用 |
| Java SE 15 | 2020 年 9 月 | OpenJDK 于 2021 年 3 月停止更新 | 不適用 |
| Java SE 16 | 2021 年 3 月 | OpenJDK 于 2021 年 9 月停止更新 | 不適用 |
| Java SE 17 (LTS) | 2021 年 9 月 | 待定 | 待定 |
三、版本迭代
JDK Alpha 和 Beta:第一個1995年發(fā)布的alpha和beta Java公開版本,API和ABI非常不穩(wěn)定。 支持Java Web瀏覽器被取名為WebRunner。
JDK 1.0:第一個版本于1996年1月23日發(fā)布,叫做為Oak。而真正第一個穩(wěn)定的版本JDK 1.0.2,被稱作Java 1。
JDK 1.1:1997年2月19日發(fā)布。新增了如下內(nèi)容:
- AWT事件模型大規(guī)模重新編制
- 加入了內(nèi)部類別
- JavaBeans
- JDBC
- RMI
- 能夠支持自理的反射能力,在運行時不可能有修改。
- 針對 Microsoft Windows 平臺上運作的版本,附帶由Symantec為JavaSoft生產(chǎn)的JIT編譯器
- 支持國際化和Unicode,該功能源自Taligent
J2SE 1.2:1998年12月8日發(fā)布,代號為Playground(競技場)。 該版本到J2SE 5.0為止的后續(xù)版本被更名為Java 2,而版本名稱“J2SE”(Java 2平臺,標準版)取代JDK以區(qū)別J2EE(Java 2平臺,企業(yè)版) 和J2ME(Java 2 Platform,Micro Edition)基礎(chǔ)平臺。這是Java的一個非常重要的版本,它將Java平臺的大小增加至原先的三倍,在59個程序包中達到了1520個類。主要增加包括:
- strictfp 關(guān)鍵字
- 主類別中集成了Swing圖像化API
- 首次為Sun提供的JVM配備JIT編譯器
- Java plug-in(即 Java Applet)
- Java IDL,一個與CORBA互通的接口描述語言實現(xiàn)
- Java集合框架
J2SE 1.3:2000年5月8日,工程代號為Kestrel(美洲紅隼)的JDK 1.3發(fā)布,這個版本中最著名的改變包括:
- 包含了HotSpot JVM(HotSpot JVM第一次被發(fā)布是在1999年4月,名為J2SE 1.2 JVM)
- 為了支持與CORBA的選擇兼容性而修改了RMI
- Java命名和目錄接口(Java Naming and Directory Interface,縮寫JNDI)包含在主程序庫中(先前為擴展組件的形式)
- Java Platform Debugger Architecture (JPDA)
- JavaSound
- 用于實現(xiàn)動態(tài)代理的類
J2SE 1.4:2002年2月13日,JDK 1.4發(fā)布,工程代號為Merlin(灰背隼)。JDK 1.4同樣發(fā)布了很多新的技術(shù)特性,如正則表達式、異常鏈、NIO、日志類、XML解析器和XSLT轉(zhuǎn)換器等。Java 1.4開放支源和安全性更新于2008年10月終止。Oracle客戶的付費的安全性更新也在2013年2月結(jié)束。
J2SE 5.0:代號為Tiger(老虎)。這個在2004年9月30日發(fā)布的版本原本以1.5編號,也就是仍然使用內(nèi)部版本編號。這個數(shù)字被改變是為了“更好地反映成熟度、穩(wěn)定性、可擴展性和 J2SE 的安全水準”。這個版本是在JSR 176底下被開發(fā)。Tiger增加了若干個重要的新語言功能:
- 泛型(Generics): 為集合提供編譯期間 (靜態(tài)) 類型安全,且不須為大多數(shù)類型轉(zhuǎn)換 (類型轉(zhuǎn)換) (規(guī)范在 JSR 14)
- 元數(shù)據(jù)(Metadata): 也稱作注解。讓語言結(jié)構(gòu)(像是類別和方法)能夠用額外的資料標記,可以由元數(shù)據(jù)意識工具處理(規(guī)范在 JSR 175)
- 自動封裝與解封裝: 在基本的資料類型(如 int)和基本的的外覆類別 (如 Integer) 之間能夠自動轉(zhuǎn)換 (規(guī)范在 JSR 201)
- 枚舉(Enumerations): 以 enum 關(guān)鍵字創(chuàng)造出一種類型安全,有排序值的清單(如Day.MONDAY、 Day.TUESDAY 等);以前這只能透過非類型安全的恒定整數(shù)或自行撰寫的類別來達成 (類型安全的枚舉模式) (規(guī)范在JSR 201)
- 可變參數(shù)函數(shù)(Varargs):方法的最后一個參數(shù)現(xiàn)在可以用一個類型名稱加上三個點宣告(如:void drawtext(String… lines));在調(diào)用代碼中,類型中參數(shù)里任何的數(shù)字可以被使用,而它們再放在一個數(shù)組來傳遞給方法,或是其它的調(diào)用代碼可以傳遞那個類型的數(shù)組
- 強化 for each 循環(huán):for 循環(huán)的語法被用特別的語法擴展了,適用于數(shù)組或 Iterable,用于迭代每個成員,如基本的 Collection 類別 (規(guī)范在 JSR 201(頁面存檔備份,存于互聯(lián)網(wǎng)檔案館))
改進多線程 Java 程序的運行語義;新的 Java 存儲器模型改善了復雜性、 有效性和以前的規(guī)格性能 - 靜態(tài)導入
Java SE 6:代號為Mustang(野馬)。版本發(fā)布于2006年12月11日,Sun把原本的名稱“J2SE”改為“Java SE”,然后再從版本號中去掉“.0”,而開發(fā)者內(nèi)部編號仍然是1.6.0。這個版本是根據(jù)JSR 270(頁面存檔備份,存于互聯(lián)網(wǎng)檔案館)開發(fā)的。本版本包含的主要更改:
- 支持舊的Win9x版本下降;非正式地,Java 6 Update 7是Java的最后一個顯示為在這些版本的Windows上工作的版本。 這被認為是因為在Update 10版本中的主要更改。
- 腳本語言支持(Scripting Language Support)(JSR 223):用于與腳本語言緊密集成的通用API,以及內(nèi)置的Mozilla JavaScript Rhino集成。
- 核心平臺和Swing性能顯著的改進。
- 透過JAX-WS改善的網(wǎng)絡(luò)服務(wù)支持(JSR 224).
- 支持JDBC 4.0 (JSR 221).
- Java編譯器API (JSR 199):允許Java程序以寫程序的方式選擇和調(diào)用Java編譯器的API。
- 將JAXB升級到版本2.0:包括StAX解析器的集成。
- 支持pluggable annotations (JSR 269).
- 改善許多GUI,像是SwingWorker在API中的集成,表格排序和篩選,以及真正的Swing雙緩沖(消除模糊區(qū)域效果)。
- 包含JVM改善:同步和編譯器性能優(yōu)化,新算法和對現(xiàn)有垃圾收集算法的升級以及應用程序引導性能。
Java SE 7:代號為Dolphin(海豚),是一個重大的更新,在 2011年7月7日亮相,并在2011年7月28日開放給開發(fā)者使用。發(fā)展時期被分類成十三個重要階段,最后一個階段在2011年6月6日完成。在 Java 7 中新增的功能包括:
- JVM本身對動態(tài)語言的支持:新的invokedynamic字節(jié)碼指令(JSR-292(頁面存檔備份,存于互聯(lián)網(wǎng)檔案館)),與多語言虛擬機(Multi Language Virtual Machine)原型
- 64位指針壓縮(Java 6 中可以使用 XX:+UseCompressedOops 開啟)
- 一些語言方面的小改變(在Coin項目下的一個小群體)
- JSR 166下的并發(fā)實用工具
- 新的文件 I/O 程序庫 (JSR 203 定義) 增加多重文件的支持、文件原始資料和符號鏈接。新的包為:java.nio.file、java.nio.file.attribute和java.nio.file.spi
- 使用 Timsort 來為集合與數(shù)組排序,取代歸并排序
- 對橢圓曲線加密算法增加標準庫級別的支持
- 一個給Java 2D的XRender傳遞途徑,改進了現(xiàn)代GPUs特有的功能的處理
- 用于圖形功能的新平臺API(最初在版本6u10中的實現(xiàn)為不支持的API)
- 增強了對新網(wǎng)絡(luò)通信協(xié)議(包括SCTP和Sockets Direct Protocol)的標準庫級別的支持
- 更新對XML和Unicode的支持,以符合最新標準
- Java部署規(guī)則集
Java SE 8:Java 8 于2014年3月18日發(fā)布,包含了一些原本被項目在 Java 7卻延遲的功能。這些功能改進在 JDK Enhancement Proposals (JEPs) 的指導下得到了集成:
- JSR 335,JEP 126:Lambda項目中提供的語言級匿名函數(shù)支持(官方稱為 lambda 表達式,非官方亦稱閉包);添加默認方法(虛擬擴展組件方法),以允許在不破壞兼容性的情況下向現(xiàn)有接口中新增方法。Java社區(qū)中曾經(jīng)有過針對是否要加入 lambda 表達式支持的辯論。稍后Sun公司宣布 lambda 表達式將會包含在Java中,并請社區(qū)協(xié)助改善該特性。支持lambda表達式使得針對流中元素的函數(shù)式操作成為可能,由此可以實現(xiàn)由 MapReduce 啟發(fā)的函數(shù)式集合操作。默認方法允許API作者添加新的方法到現(xiàn)有接口上,而不會破壞舊的代碼中。默認方法還使得多重繼承的行為 (不是狀態(tài))成為可能,但默認方法的設(shè)計意圖并非在此。
- JSR 223,JEP 174:Nashorn項目,一個 JavaScript 運行時,它允許開發(fā)人員在應用程序中嵌入 JavaScript 代碼
- JSR 308,JEP 104:在 Java 類型上的注解
- 無符號整數(shù)算術(shù)
- JSR 337,JEP 120:重復注解
- JSR 310,JEP 150:日期和時間 API,基于Joda-Time日期時間處理庫的實現(xiàn)。
- JEP 178:靜態(tài)鏈接 JNI 程序庫
- JEP 153:執(zhí)行 JavaFX 應用程序(直接執(zhí)行 JavaFX 的應用程序的 JAR 包)
- JEP 122:移除了虛擬機內(nèi)存管理中的永久世代
Java 8 不再支持 Windows XP,但JDK 8 第 25 版更新仍然可以在 Windows XP安裝和運行。先前JDK 8的更新版本可以在XP中運行,但必須通過強制解壓安裝程序來進行安裝。
Java SE 9:在2011年的JavaOne中,Oracle討論了一些他們希望在2016年于Java 9中發(fā)布的功能。Java 9 應當對千兆級堆擁有更好的支持,同時能夠更好地集成本機代碼,且擁有新的垃圾收集器G1和能夠自我調(diào)節(jié)的JVM。2016年初,Java 9 的發(fā)布被重新定為2017年3月;2017年3月時,發(fā)布日期又被拖延至2017年7月;后來又因Java執(zhí)行委員會對Jigsaw項目實現(xiàn)的分歧而最終定為2017年9月21日,在此期間Oracle回應了部分疑問,并對一些重要的技術(shù)問題進行了修正。在2017年6月的最后幾天,JCP對擬議的模塊系統(tǒng)方案達成了共識。
- JSR 376:在Jigsaw項目中將JDK模塊化
- JEP 222:jshell:Java Shell(一個 Java 交互式頂層構(gòu)件)
- JEP 295:AOT編譯(通過 Graal VM 實現(xiàn))
- JEP 268:XML Catalogs
- JEP 266:更多的并發(fā)更新。[243]包含響應式流的Java實現(xiàn),及其部分替代品java.util.concurrent.Flow。
- JEP 193:變量句柄:定義一個標準方法來調(diào)用java.util.concurrent.atomic和sun.misc.Unsafe操作的等價物。
- JEP 282:jlink:Java鏈接器。該工具可以為模塊生成一個包含了其所有依賴項的自定義運行時映像,同時允許生成一個包括運行它的JVM的可執(zhí)行文件。
- JavaDB被移出JDK
- JEP 263:高DPI圖像:自動縮放與尺寸自適應。
Java SE 10:OpenJDK 10于2018年3月20日發(fā)布。此次更新包含以下12個新特性:
- JEP 286:局部變量類型推斷
- JEP 317:實驗性的基于Java的JIT編譯器。這是 Linux x64 下 Graal 動態(tài)編譯器的集成。
- JEP 310:應用程序類級別數(shù)據(jù)共享
- JEP 322:基于時間的版本命名
- JEP 307:適用于G1的多線程完全垃圾回收
- JEP 304:垃圾回收器接口
- JEP 314:更多的Unicode語言標簽擴展
- JEP 319:內(nèi)置根證書
- JEP 312:線程本地握手
- JEP 316:在可選的內(nèi)存設(shè)備上申請堆內(nèi)存空間
- JEP 313:刪除本地代碼頭文件生成器javah
- JEP 296:將所有JDK分支集成到同一個版本庫中
Java SE 11:JDK 11于2018年9月25日發(fā)布。Java 11 包含如下更新:
- JEP 181:針對嵌套成員的訪問控制
- JEP 309:動態(tài)類文件常量
- JEP 315:利用 Aarch64 的特有架構(gòu)改進其上的性能
- JEP 318:Epsilon:無操作垃圾收集器
- JEP 320:移除 Java EE 和 CORBA 模塊
- JEP 321:HTTP Client
- JEP 323:lambda參數(shù)的局部變量語法
- JEP 324:支持 Curve25519 和 Curve 448 密鑰
- JEP 327:Unicode 10
- JEP 328:添加Java飛行記錄器(JFR),其用于創(chuàng)建性能分析記錄
- JEP 329:ChaCha20 和 Poly1305 加密算法
- JEP 330:運行單文件源碼程序
- JEP 331:低開銷堆分析
- JEP 332:支持 TLS 1.3
- JEP 333:添加ZGC(一個可擴展的低延遲垃圾收集器)
- JEP 335:棄用 Nashorn JavaScript 引擎
- JEP 336:棄用 Pack200 相關(guān)的工具及 API
Java SE 12:JDK 12于2019年3月19日發(fā)布。該版本包含較多新特性,例如:
- JEP 189:Shenandoah:一個實驗性的低延遲垃圾收集器
- JEP 230:細粒度性能評審包
- JEP 325:Switch 表達式(預覽階段)
- JEP 334:JVM Constants API
- JEP 340:僅保留一個 AArch64 平臺的移植
- JEP 341:默認類數(shù)據(jù)共享歸檔
- JEP 344:針對G1,提供可中止的混合垃圾收集
- JEP 346:針對G1,及時釋放已申請但未使用的內(nèi)存
Java SE 13:JDK 13于2019年9月17日發(fā)布。該版本包含以下新特性以及很多的強化和很多的漏洞修補。
- JEP-350: 動態(tài) CDS 歸檔
- JEP-351: ZGC: 取消提交未使用存儲器
- JEP-353: 重新實現(xiàn)舊版 Socket API
- JEP-354: Switch 表達式(預覽階段)
- JEP-355: 文本框(預覽階段)
Java SE 14:JDK 14發(fā)布于2020年3月17日。Java 14 包含了下方列出的新功能,以及“數(shù)百個小改進和數(shù)千個漏洞修復”。
- JEP-305:使用 instanceof 的模式匹配(預覽)
- JEP-343:打包工具(孵化中)
- JEP-345:在 G1 中,對不均勻的內(nèi)存訪問(NUMA)情況下的內(nèi)存申請優(yōu)化
- JEP-349:JFR Event Streaming
- JEP-352:使字節(jié)緩沖區(qū)能夠映射到非易失性存儲器上
- JEP-358:有幫助的 NullPointerExceptions
- JEP-359:記錄類(預覽)
- JEP-361:Switch 表達式(標準)
- JEP-362:棄用 Solaris 和 SPARC 平臺上的移植版本
- JEP-363:移除 Concurrent Mark Sweep (CMS) 垃圾收集器
- JEP-364:適用于 macOS 的 ZGC
- JEP-365:適用于 Windows 的 ZGC
- JEP-366:棄用 ParallelScavenge + SerialOld 的垃圾收集器組合
- JEP-367:移除 Pack200 相關(guān)的工具及 API
- JEP-368:文本塊(第二預覽版本)
- JEP-370:外部內(nèi)存訪問 API(孵化中)
Java SE 15:JDK 15發(fā)布于2020年9月15號,包含了下列新特性:
- JEP-339:Edwards-Curve 數(shù)據(jù)簽名算法(EdDSA)
- JEP-360:封閉類(預覽特性)
- JEP-371:隱藏類
- JEP-372:移除了 Nashorn JavaScript 腳本引擎、APIs,以及 jjs 工具
- JEP-373:重新實現(xiàn)了老的 DatagramSocket API 接口
- JEP-374:禁用和廢除偏向鎖
- JEP-375:模式匹配(第二次預覽)
- JEP-377:ZGC:一個可伸縮、低延遲的垃圾回收器
- JEP-378:文本塊,是一個多行字符串,它可以避免使用大多數(shù)轉(zhuǎn)義符號,自動以可預測的方式格式化字符串,并讓開發(fā)人員在需要時可以控制格式。
- JEP-379:Shenandoah:一個低停頓時間的垃圾回收器
- JEP-381:移除了 Solaris 和 SPARC 端口
- JEP-383:外部內(nèi)存訪問 API(二次孵化)
- JEP-384:記錄類(第二次預覽)
- JEP-385:廢除 RMI 激活,以便在將來進行刪除
Java SE 16:JDK 16發(fā)布于2021年3月17號,包含了下列新特性:
- JEP-338:Vector API(孵化中)
- JEP-347:啟用了新的C++特性
- JEP-357:從 Mercurial 遷移到 Git
- JEP-369:遷移到GitHub
- JEP-376:ZGC垃圾收集器
- JEP-380:Unix域套接字通道
- JEP-386:在x64和AArch64體系結(jié)構(gòu)上,將JDK移植到Alpine Linux以及其它使用musl C庫的Linxu發(fā)行版上。
- JEP-387:Elastic Metaspace
- JEP-388:將 JDK 移植到 Windows / AArch64平臺。
- JEP-389:外部鏈接器API(孵化中)
- JEP-390:Warnings for Value-Based Classes
- JEP-392:打包工具
- JEP-393:外部內(nèi)存訪問 API (第三次孵化)
- JEP-394:instanceof的模式匹配
- JEP-395:記錄類
- JEP-396:默認情況下嚴格封裝JDK
- JEP-397:密封類,被final修飾的類,密封類不能被繼承,防止了惡意的派生。
總結(jié)
了解了Java的發(fā)展歷史,想必你一定會對這個當下非常熱門的語言產(chǎn)生了濃厚的興趣。相信我,Java并不難學,而且學好Java不僅能為我們裝備一款強有力的武器,而且還能找到一份薪資不低的工作,何樂而不為呢?接下來,讓我們一起走進Java的探索之旅!
上一節(jié):Java夯實基礎(chǔ)系列文章目錄
下一節(jié):開發(fā)環(huán)境配置
總結(jié)
以上是生活随笔為你收集整理的【编程语言】Java夯实基础(一):Java的起源与发展的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MAX31856中文文档
- 下一篇: Java运用注解反射编写简单测试框架