歡迎光臨
每天分享高質量文章

001-為什麼Java能這麼流行

閱讀本文大概需要4分鐘。

 

典型回答

這種問題比較籠統,如果我遇到這個問題,我會從下麵幾個點闡述我的觀點:

  1. Java透過JVM實現了“一次編寫,到處執行”的特性,由JVM遮蔽掉了不同平臺的差異性,並建立了位元組碼語言來作為Java程式碼的“組合語言”,JVM讀取位元組碼檔案、解析位元組碼檔案來執行;

  2. JVM提供了垃圾收集器,大部分情況下,程式員不需要自己擔心記憶體的分配和回收;

  3. Java在企業級開發領域具備殺手級框架Spring全家桶,讓Java在企業服務領域幾無敵手;

  4. Java在客戶端開發領域具備殺手級應用場景——Android開發;

  5. Java開發的生態非常豐富和完整,有無數成熟可靠的開源軟體;

  6. Java是一門面向物件的靜態型別語言,面向物件的特性有助於Java構建大型的、複雜的應用,靜態型別語言使得Java在執行時的速度遠勝於解釋性語言,同時使得Java應用在編譯期可以發現很多問題,是型別安全的;

  7. Java一直在發展和進化,Java 1.5補充了很多有用的特性、Java 1.8開始引入stream、lambda等特性來擁抱函式式程式設計正規化、Java 1.9開始支援模組化等等

問題分析

這種問題屬於開放式問題,可以考察很多方面的內容,例如面試者的基礎知識是否扎實、知識體系是否完整。越是開放的問題,回答越不能發散,要給出系統性、結構性的回答,表現出自己是系統、全面得掌握了Java語言和其所執行的平臺的。

知識點擴充套件

1、Java知識地圖

首先看一張圖,是Oracle對Java核心概念的一些總結

這張圖看著密密麻麻的,不太好懂,我整理了一份腦圖出來,看著更清晰一點在這張圖裡我利用虛線框表示包含關係(PS:如果需要原檔案,可以在公眾號後臺輸入關鍵字——java001)。

  1. JVM虛擬機器:按照虛擬化裡面的概念,JVM虛擬機器屬於宿主型虛擬機器,作為一個虛擬機器,最核心的模組是:執行時記憶體管理、類載入、位元組碼系統、執行引擎、垃圾收集器等等;

  2. JRE(Java執行時環境):只有JVM,對於普通的Java開發者來說難度太高了,因此Hotspot的開發者還為普通開發者提供了對應的Java SE API和其他開發者需要的類庫,這些API、類庫和JVM共同構成了Java執行時環境。

  3. Java語言:JVM之上不僅僅有Java語言長盛不衰,還培育出了豐富的語言生態,例如Scala、Groovy、Kotlin、等新生代的語言。

  4. JDK:JVM、JRE,在加上輔助工具、Java語言,共同構成了JDK。

2、應用場景

從Java語言的應用場景和生態看,分為如下幾點:

  1. 企業級開發(J2EE):SSM框架、Spring Boot、Spring Cloud、JPA、快取、批次處理、定時任務等等;

  2. 客戶端開發(J2ME):安卓開發

  3. 大資料開發:Spark、Hadoop、Hbase、ES等等

3、新特性

在將上面的內容講完後,面試官對你的知識體系的完整性應該會比較滿意,接下來還可以談下Java各個版本的發展,最好能提到某個版本比較重大的新特性,向面試官證明你不僅掌握了基礎,還隨時跟進Java語言最新的發展。

  1. Java 1.8:函式式程式設計、stream、lambda運算式

  2. Java 1.9:模組化

  3. Java 1.11:ZGC

參考資料

  1. Description of Java Conceptual Diagram

    

往期精彩回顧
MAT入門到精通(一)

MAT入門到精通(二)

不可錯過的CMS學習筆記

可能是最全面的G1學習筆記

 

你點的每個好看,我都認真當成了喜歡
    閱讀原文

    贊(1)

    分享創造快樂