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 MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...