深入理解Java虛擬機-走近Java,2021Java開發現狀分析

程序猿小碼農 2021-09-18 06:19:59 阅读数:397

深入 入理 理解 java 走近
* [本章小結](about:blank#_101)

世界上並沒有完美的程序,但我們並不因此而沮喪,因為寫程序本來就是一個不斷追求完美的程。

[](

)概述


Java不僅僅是一門編程語言,還是一個由一系列計算機軟件和規範形成的技術體系,這 個技術體系提供了完整的用於軟件開發和跨平臺部署的支持環境,並廣泛應用於嵌入式系統、移動終端、企業服務器、大型機等各種場合,如圖1-1所示。時至今日,Java技術體系已 經吸引了900多萬軟件開發者,這是全球最大的軟件開發團隊。使用Java的設備多達幾十億 臺,其中包括11億多臺個人計算機、30億部移動電話及其他手持設備、數量眾多的智能卡, 以及大量機頂盒、導航系統和其他設備。

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_後端

Java能獲得如此廣泛的認可,除了它擁有一門結構嚴謹、面向對象的編程語言之外,還 有許多不可忽視的優點:它擺脫了硬件平臺的束縛,實現了"一次編寫 ,到處運行"的理想;它提供了一個相對安全的內存管理和訪問機制,避免了絕大部分的內存泄露和指針越界問 題;它實現了熱點代碼檢測和運行時編譯及優化,這使得Java應用能隨著運行時間的增加而 獲得更高的性能;它有一套完善的應用程序接口,還有無數來自商業機構和開源社區的第三 方類庫來幫助它實現各種各樣的功能……Java所帶來的這些好處使程序的開發效率得到了很 大的提昇。作為一名Java程序員,在編寫程序時除了盡情發揮Java的各種優勢外,還應該去了解和思考一下Java技術體系中這些技術特性是如何實現的。認識這些技術運作的本質,是 自己思考"程序這樣寫好不好"的基礎和前提。當我們在使用一種技術時,如果不再依賴書本?和他人就能得到這些問題的答案,那才算上昇到了"不惑"的境界。

本書將與讀者一起分析Java技術中最重要的那些特性的實現原理。在本章中,我們將重點介紹Java技術體系內容以及Java的曆史、現在和未來的發展趨勢。

[](

)Java技術體系


從廣義上講,Clojure、JRuby、Groovy等運行於Java虛擬機上的語言及其相關的程序都 屬於Java技術體系中的一員。如果僅從傳統意義上來看,Sun官方所定義的Java技術體系包括以下幾個組成部分:

  • Java程序設計語言

  • 各種硬件平臺上的Java虛擬機

  • Class文件格式

  • Java API類庫

  • 來自商業機構和開源社區的第三方Java類庫

圖1-2展示了Java技術體系所包含的內容,以及JDK和JRE所涵蓋的範圍。

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_Java_02

以上是根據各個組成部分的功能來進行劃分的,如果按照技術所服務的領域來劃分,或者說按照Java技術關注的重點業務領域來劃分,Java技術體系可以分為4個平臺,分別為:

  • Java Card : 支持一些Java小程序( Applets ) 運行在小內存設備(如智能卡)上的平臺。

  • Java ME ( Micro Edition ) : 支持Java程序運行在移動終端(手機、 PDA ) 上的平臺,對 Java API有所精簡,並加入了針對移動終端的支持,這個版本以前稱為J2ME。

  • Java SE ( Standard E d i t i o n ) : 支持面向桌面級應用(如Windows下的應用程序)的Java平臺,提供了完整的Java核心API,這個版本以前稱為J2SE。

  • Java EE ( Enterprise Edition): 支持使用多層架構的企業應用(如ERP、CRM應用)的 Java平臺,除了提供Java SE API外 ,還對其做了大量的擴充- 並提供了相關的部署支持,這 個版本以前稱為J2EE。

[](

)Java發展史


從第一個Java版本誕生到現在已經有18年的時間裏。滄海桑田一瞬間,轉眼18年過去了,在圖1-3所展示的時間線中,我們看到JDK已經發展到了1.7版。在這18年裏還誕生了無數和Java相關的產品、技術和標准。現在讓我們走入時間隧道,從孕育Java語言的時代開始,再來回顧一下Java的發展軌迹和曆史變遷。

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_Java_03

具體可以參考我的這篇博客[Java發展曆程](

)

[](

)Java虛擬機發展史


上一節我們從整個Java技術的角度觀察了Java技術的發展,許多Java程序員都會潜意識地把它與Sun公司的HotSpot虛擬機等同看待,也許還有一些程序員會注意到BEA JRockit和 IBM J9 ,但對JVM的認識不僅僅只有這些。

從1996年初Sun公司發布的JDK 1.0中所包含的Sun Classic VM到今天,曾經湧現、裏滅過許多或經典或優秀或有特色的虛擬機實現,在這一節中,我們先暫且把代碼與技術放下,一 起來回顧一下Java虛擬機家族的發展軌迹和曆史變遷。

最後

最後,强調幾點:

  • 1. 一定要謹慎對待寫在簡曆上的東西,一定要對簡曆上的東西非常熟悉。因為一般情况下,面試官都是會根據你的簡曆來問的; 能有一個上得了臺面的項目也非常重要,這很可能是面試官會大量發問的地方,所以在面試之前好好回顧一下自己所做的項目;
  • 2. 和面試官聊基礎知識比如設計模式的使用、多線程的使用等等,可以結合具體的項目場景或者是自己在平時是如何使用的;
  • 3. 注意自己開源的Github項目,面試官可能會挖你的Github項目提問;

我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各比特不要因為面試失敗而灰心、喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

以上面試專題的答小編案整理成面試文檔了,文檔裏有答案詳解,以及其他一些大廠面試題目。

 CodeChina開源項目:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視頻】

面試答案

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_Java_04

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_Java_05

深入理解Java虛擬機-走近Java,2021Java開發現狀分析_Java_06

版权声明:本文为[程序猿小碼農]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918061958112s.html