Java的前世今生

来源:https://www.cnblogs.com/lookroot/archive/2020/05/25/12958110.html
-Advertisement-
Play Games

Java的前世今生 "我的個人博客" "本文視屏" 前言 這一期來講故事 你說為啥這杯咖啡能喝這麼多年還這麼香 讓我們一起來看看這杯咖啡的魔力 現如今一提到 Java開發 就完完全全是spring的事情 一談學習就是 springboot springcloud 好像沒有什麼事情是spring全家桶 ...


Java的前世今生

前言

這一期來講故事 你說為啥這杯咖啡能喝這麼多年還這麼香 讓我們一起來看看這杯咖啡的魔力

現如今一提到 Java開發 就完完全全是spring的事情 一談學習就是 springboot springcloud 好像沒有什麼事情是spring全家桶不能一把梭哈的 很多人就覺得這個Java很單一 很枯燥

Java真的就只能是服務端開發嗎 讓我們來捋一捋這個Java的前世今生

首先是太陽公司


在這裡插入圖片描述

SUN公司介紹

SUN公司是從斯坦福大學孵化器出的高科技公司 是當時互聯網裡面的老大, GoogleCEO埃里克.施密特和首任工程部副總裁韋恩.羅森(Wayne Rosen) 從這裡出去的

時間來到1991


(詹姆斯·高斯林)James Gosling 大家習慣稱他為高司令 Java之父 當時高司令著手一個名叫Green的項目 專攻電腦在家電產品上的嵌入式應用(電視機頂盒、麵包烤箱、行動電話)

當時選用的是c++ C++程式過於複雜和龐大 但是嵌入式的產品性能差 種類多, 所以需要新的跨平臺的 簡潔的開發語言 隨後便開發了Oak(橡樹)語言 這就是 Java 語言的前身。

由於當時並不被硬體生產商認同 所以Oak並沒有掀起大風大浪

時間來到 1995年


互聯網的快速發展給了Oak機會 因為Oak的小巧 Sun公司首先推出了可以嵌入網頁並且快速在網路上傳輸的Applet 非常適合網路傳播

隨後 各大公司競相購買了Java使用許可證

申請註冊商標時,發現Oak已經被人使用了,然後他們正在咖啡館喝Java咖啡,靈機一動Oak語言改名為Java

Java吸收C++ 的很多優點 精簡了很多東西(還摒棄了C++ 里難以理解的多繼承、指針等概念) 當時被人稱為 C++-

這一年的5月23日Java 1.0版本正式在SunWorld大會上發佈 喊出了"Write Once,Run Anywhere"的口號 體現了其跨平臺的特性

時間來到 1996 年

這一年的1月23日正式發佈了JDK1.0。這個版本包括了兩部分:運行環境(即JRE)
和開發環境(即JDK)。 這個時候java才能真正的用來編寫軟體

版本號 名稱 中文名 發佈日期
JDK 1.1.4 Sparkler 寶石 1997-09-12
JDK 1.1.5 Pumpkin 南瓜 1997-12-13
JDK 1.1.6 Abigail 阿比蓋爾--女子名 1998-04-24
JDK 1.1.7 Brutus 布魯圖--古羅馬政治家和將軍 1998-09-28
JDK 1.1.8 Chelsea 切爾西--城市名 1999-04-08
J2SE 1.2 Playground 運動場 1998-12-04
J2SE 1.2.1 none 1999-03-30
J2SE 1.2.2 Cricket 蟋蟀 1999-07-08
J2SE 1.3 Kestrel 美洲紅隼 2000-05-08
J2SE 1.3.1 Ladybird 瓢蟲 2001-05-17
J2SE 1.4.0 Merlin 灰背隼 2002-02-13
J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16
J2SE 1.4.2 Mantis 螳螂 2003-06-26
J2SE 5.0 (1.5.0) Tiger 老虎 2004-10
J2SE 6.0/1.6 (Beta) Mustang 野馬 2006-04
Java SE 7.0 / 1.7 Dolphin 海豚 2011-07-28
Java SE 8.0 / 1.8 Spider 蜘蛛 2014-03-18
Java SE 9.0 2017-09-21
Java SE 10.0 2018-03-21
Java SE 11.0 2018-09-25
JAVA 12 2019-03-19

這一年5月底,Sun公司於美國舊金山舉行了首屆JavaOne大會,從此JavaOne成為全世界數百萬Java開發者的盛會

這一年 Sun和IBM聯手創建了用於嵌入式系統的Java OS 這個東西你在網上資料都查不到 註定是失敗的

時間來到1998 年


JDK1.2 發佈,Java 技術體系被拆分為 J2SE、J2EE、J2ME 三大體系

大家可能對這個 J2ME 不是很熟悉 是為機頂盒、行動電話和PDA之類嵌入式消費電子設備提供的Java語言平臺,包括虛擬機和一系列標準化的Java API 比如當時手機裡面的 Java小軟體 小游戲

這也是我對Java的興趣的起始 每次看到 屏幕上的 咖啡標誌都非常親切 通宵通宵的玩國產rpg游戲

時間來到2004 年


Spring1.0 框架迅速發展 Spring 2.0 於 2006 年 10 月發佈

時間來到2006年


這一年的12月11日 JDK 1.6發佈

Sun終結了從JDK 1.2開始已經有8年曆史的J2EE、J2SE、J2ME的命名方式,啟用Java SE 、Java EE 、Java ME 的命名方式

JAVA在桌面軟體也是有一腿的 最開始的AWT 到後來佈局讓人非常頭疼的 swing 把swing發揮到極致的是IDEA是吧 swing這東西的ui界面 大家大一的Java基礎課時候應該是見識過的 非常的難搞 最近這幾年很多的搶購軟體還在用這個編寫

雖然後來 JavaFx 有了很多的提升 但是Java 在GUI這個方面是真的不太行

2009 年


Sun 公司因為經營不善被 Oracle 公司收購 曾經的老大被提供資料庫服務的收購了 互聯網 真的是變化莫測

當Java程式員開發web的時候還是使用 Servlet out.println 一個一個列印 網頁片段進行拼接的時候 PHP .NET 已經可以使用模板頁面了 導致一部分web開發的java程式員轉向 php的懷抱 由此 JSP誕生了 JSP雖然原則上還是編譯為Servlet 但是情況就好的多了 隨後bootstrapjquery成了JavaWeb開發的伴侶 現在很多老項目的維護 都是它們的身影

2011 年,Java SE 7.0 發佈。 2014年3月18日,Java SE 8.0 發佈

這仍然是當前占有率最高的 JDK版本

時間回到幾年前


這個時候 市場已經從 ssh 轉向 ssm 但是開發模式還是沒有變化 配置麻煩 故障率高 會偷懶的碼農 都是用別人的腳手架 可以說 springboot 就是個高級的腳手架

也在這個同一時期

這個時候原生Android開發 如日中天 當時Android培訓就像現在的javaweb培訓一樣火熱 寫 xml 的碼農 就像現在寫springboot的碼農一樣多 再後來過渡飽和加上移動平臺的相對穩定 一大部分人尋求出路 Android原生開發可以說是我當時對Java的學習熱情的主要來源 試問哪個程式員沒有中二的一段時間 想做點自己的東西呢?

現在 springboot 開發真的非常方便 開箱即用 幾個註解就能快速開始開發

最後說些話


Java經久不衰,當時也肯定不可能一直火下去,會不斷有新語言出現並替代

無論什麼語言、什麼框架,都只不過是需求的最終落地而已,我們搞技術的需要做的事情就是把老闆的需求變現,判斷還是那個判斷,迴圈還是那個迴圈

無論語言怎麼變化,我們所掌握的數據結構和演算法才是經久不衰的,這也是為什麼每個程式員都要重視的原因

不同的語言有不同的特點,沒有必要去爭論誰才是最好的,我自己覺得只有最適合的,沒有最好的

比如說現在php仍然是網頁快速落地的好方案,要是你對一個正在使用php的公司說2020年了還在用php,為啥不上Java?

這隻能說明你的愚昧,寫代碼的人老是覺得自己會的是最牛逼的,老闆會覺得能快速實現業務的最好的,這也就是你和老闆的差距,你可能覺得老闆愚昧不如你,但是他是老闆,你是員工,他就是比你厲害

如果你非要覺得自己厲害,你完全可以嘗試改變一下自己的角色,最後會發現,自己也僅僅就是會敲點代碼而已


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 我們用spring boot 快速開發應用程式時,經常會引入很多這樣以spring-boot-starter開頭的的庫, 我就演示下自定義一個這樣的庫,功能是日誌輸出到什麼地方(控制台、文件還是資料庫) 前提是maven已經配置好了,參考 https://my.oschina.net/u/15486 ...
  • 接上文《C/C++編程筆記:C語言貪吃蛇源代碼控制台(一),會動的那種哦!》如果你在學習C語言開發貪吃蛇的話,零基礎建議從上一篇開始哦!接下來正式開始吧! 三、蛇的運動 上次我已經教大家畫出蛇了,現在我就教大家讓蛇動起來。為了讓大家更好理解,蛇的移動就用最簡單的辦法,這裡就不用鏈表,順序隊列什麼的了 ...
  • 簡單來說,Sidecar 註入會將額外容器的配置添加到 Pod 模板中。這裡特指將Envoy容器註應用所在Pod中。 Istio 服務網格目前所需的容器有: istio-init 用於設置 iptables 規則,以便將入站/出站流量通過 Sidecar 代理。 ...
  • Community 版本是免費的,但是不好用,懂的自然懂還有就是 License Server 被約談了我在這裡也要聲明一下此碼僅作為個人使用,請勿傳播,如有商業用途,請購買正品行貨已穩定使用數月,親測有效,毫無問題 上碼 註冊碼太長,影響文章美觀 戳這裡顯示 激活成功截圖 ...
  • 一、python 開發工具的選擇 python開發工具有很多,這裡推薦使用 pycharm; 因為jetbrains公司擁有眾多的開發工具以及開發擁護者。 這些工具有相同的風格和各類使用案例、描述問題的博客,可供初學者參考。 很多人學習python,不知道從何學起。很多人學習python,掌握了基本 ...
  • 今天給大家更新的是一篇關於多線程面試的文章,是根據時下熱門的面試內容給大家進行總結的,如有雷同,請多見諒。 本篇文章屬於乾貨內容!請各位讀者朋友一定要堅持讀到最後,完整閱讀本文後相信你對多線程會有不一樣感悟,下次面試和麵試官也能杠一杠相關內容了。 1.什麼是進程? 進程是系統中正在運行的一個程式,程 ...
  • C 語言是大多數人的編程入門語言,但很多初學者在學習的過程中難免會出現一些迷茫,比如:不知道 C 語言可以開發哪些項目,可以應用在哪些實際的開發中…… 今天我們收集了 20 個 C 語言練手項目,提供了詳細的教學文檔和源代碼,希望可以對 C 語言初學者有所幫助~ 1. C 語言實現簡單計算器 本課程 ...
  • mybatis是一個很好用的工具,但是編寫mapper是一件很麻煩的事,自mybatis 3.0開始可以使用註解的方式,極大的簡化了xml的編寫量,本地想看看mybatis源碼,自己擴展寫一個工具,在閱讀源碼過程中發現一個通用mapper的工具包,感覺不用重覆造輪子了,簡要記錄一下spring bo ...
一周排行
    -Advertisement-
    Play Games
  • 基於.NET Framework 4.8 開發的深度學習模型部署測試平臺,提供了YOLO框架的主流系列模型,包括YOLOv8~v9,以及其系列下的Det、Seg、Pose、Obb、Cls等應用場景,同時支持圖像與視頻檢測。模型部署引擎使用的是OpenVINO™、TensorRT、ONNX runti... ...
  • 十年沉澱,重啟開發之路 十年前,我沉浸在開發的海洋中,每日與代碼為伍,與演算法共舞。那時的我,滿懷激情,對技術的追求近乎狂熱。然而,隨著歲月的流逝,生活的忙碌逐漸占據了我的大部分時間,讓我無暇顧及技術的沉澱與積累。 十年間,我經歷了職業生涯的起伏和變遷。從初出茅廬的菜鳥到逐漸嶄露頭角的開發者,我見證了 ...
  • C# 是一種簡單、現代、面向對象和類型安全的編程語言。.NET 是由 Microsoft 創建的開發平臺,平臺包含了語言規範、工具、運行,支持開發各種應用,如Web、移動、桌面等。.NET框架有多個實現,如.NET Framework、.NET Core(及後續的.NET 5+版本),以及社區版本M... ...
  • 前言 本文介紹瞭如何使用三菱提供的MX Component插件實現對三菱PLC軟元件數據的讀寫,記錄了使用電腦模擬,模擬PLC,直至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1. PLC開發編程環境GX Works2,GX Works2下載鏈接 https:// ...
  • 前言 整理這個官方翻譯的系列,原因是網上大部分的 tomcat 版本比較舊,此版本為 v11 最新的版本。 開源項目 從零手寫實現 tomcat minicat 別稱【嗅虎】心有猛虎,輕嗅薔薇。 系列文章 web server apache tomcat11-01-官方文檔入門介紹 web serv ...
  • 1、jQuery介紹 jQuery是什麼 jQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之後又一個優秀的JavaScript代碼庫(或JavaScript框架)。jQuery設計的宗旨是“write Less,Do More”,即倡導寫更少的代碼,做更多的事情。它封裝 ...
  • 前言 之前的文章把js引擎(aardio封裝庫) 微軟開源的js引擎(ChakraCore))寫好了,這篇文章整點js代碼來測一下bug。測試網站:https://fanyi.youdao.com/index.html#/ 逆向思路 逆向思路可以看有道翻譯js逆向(MD5加密,AES加密)附完整源碼 ...
  • 引言 現代的操作系統(Windows,Linux,Mac OS)等都可以同時打開多個軟體(任務),這些軟體在我們的感知上是同時運行的,例如我們可以一邊瀏覽網頁,一邊聽音樂。而CPU執行代碼同一時間只能執行一條,但即使我們的電腦是單核CPU也可以同時運行多個任務,如下圖所示,這是因為我們的 CPU 的 ...
  • 掌握使用Python進行文本英文統計的基本方法,並瞭解如何進一步優化和擴展這些方法,以應對更複雜的文本分析任務。 ...
  • 背景 Redis多數據源常見的場景: 分區數據處理:當數據量增長時,單個Redis實例可能無法處理所有的數據。通過使用多個Redis數據源,可以將數據分區存儲在不同的實例中,使得數據處理更加高效。 多租戶應用程式:對於多租戶應用程式,每個租戶可以擁有自己的Redis數據源,以確保數據隔離和安全性。 ...