Java的前世今生

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

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?

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

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


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

更多相關文章
  • 我們用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 ...
一周排行
  • C#6.0新特性 C#7.0新特性 C#8.0新特性 ...
  • out變數 可以直接在方法中使用out申明變數 int.TryParse("123", out var result); 元組 元組的申明 var alphaBetaStart = (alpha: "a", beta: "b"); Console.WriteLine($"{alphaBetaStar ...
  • 在我們的項目中,通常會把數據存儲到關係型資料庫中,比如Oracle,SQL Server,Mysql等,但是關係型資料庫對於併發的支持並不是很強大,這樣就會造成系統的性能不佳,而且存儲的數據多為結構化數據,對於非結構數據(比如文本)和半結構化數據(比如JSon) 就顯得不夠靈活,而非關係型資料庫則很 ...
  • 這幾天終於弄懂了async和await的模式,也搞明白了一直在心裡面積壓著的許多問題,所以寫一篇博客來和大家分享一下。 關於非同步機制我認為只要記住的以下幾點,就可以弄明白了: 1.我認為async和awwait兩個修飾符中最關鍵的是await,async是由於方法中包含await修飾符之後才在方法定 ...
  • 實現WCF的步驟如下: 設計服務協議 實現服務協議 配置服務 托管服務 生成客戶端(這步可有可無) 設計或定義服務協議要麼使用介面,要麼使用類。建議介面,使用介面好處一堆例如修改介面的實現,但是服務協定有無需改變。 設計服務協議,介面上使用 ServiceContractAttribute ,方法上 ...
  • 什麼鬼,我的CPF快寫好了,你居然也要搞跨平臺UI框架?什麼Maui? 之前怎麼不早說要搞跨平臺UI框架呢?看到谷歌搞flutter眼紅了?明年年底發佈?又搞這種追別人屁股的爛事情。 什麼MVU模式?模仿Dart?用C#代碼直接寫UI的模式和我的CPF很像啊。 當初我考慮過XML,Json來描述UI ...
  • 寫在前面 Docker作為開源的應用容器引擎,可以讓我們很輕鬆的構建一個輕量級、易移植的容器,通過Docker方式進行持續交付、測試和部署,都是極為方便的,並且對於我們開發來說,最直觀的優點還是解決了日常開發中的環境配置與部署環境配置上的差異所帶來的種種疑難雜症,從此推脫產品的措辭也少了——“我電腦 ...
  • 一、前言 回顧:認證授權方案之授權初識 從上一節中,我們在對授權系統已經有了初步的認識和使用,可以發現,asp.net core為我們提供的授權策略是一個非常強大豐富且靈活的認證授權方案,能夠滿足大部分的授權場景。 在ConfigureServices中配置服務:將授權服務添加到容器 public ...
  • 項目背景: 工作之餘兼職一家公司(方向是工業4.0)給做IM系統,主要功能包括:文字、 圖片、文件傳輸、遠程協助、視頻語音等等。這些功能都是基於群會話, 比如工廠操作工人遇到問題,請求遠程專家,這個初級專家不能解決問題,會邀請一個高級專家進來解決。開發過程中主要遇到的問題是視頻和語音這一塊,像其他的... ...
  • 基礎概念 Microsoft中間語言(MSIL),也成為通用中間語言(CIL),是一組與平臺無關的指令,由特定於語言的編譯器從源代碼生成。MSIL是獨立於平臺的,因此,他可以在任何公共語言基礎架構支持特定的環境上執行。 通過JIT編譯器將MSIL轉換為特定電腦環境的特定機器代碼。這是在執行MSIL ...