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
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...