“什麼是Java虛擬機,為什麼要使用”。 最近一個1年Java開發經驗的同學去面試阿裡,遇到這個問題向我求助。 大家好,我是Mic,一個工作14年的Java程式員。 那麼,這個問題,面試官希望考察什麼呢? 問題解析 Java虛擬機,是Java應用程式運行的平臺。 很多初學者,第一步基本上都是學習怎麼 ...
“什麼是Java虛擬機,為什麼要使用”。
最近一個1年Java開發經驗的同學去面試阿裡,遇到這個問題向我求助。
大家好,我是Mic,一個工作14年的Java程式員。
那麼,這個問題,面試官希望考察什麼呢?
問題解析
Java虛擬機,是Java應用程式運行的平臺。
很多初學者,第一步基本上都是學習怎麼寫代碼,並沒有關註Java代碼所運行的平臺。
因此,雖然寫了幾年代碼,但是對Java本身的理解不夠深刻,程式一旦出現問題,很難排查和解決。
面試官考察這個問題的出發點,我認為有三個
- 瞭解求職者對於Java語言的理解深度,這個方面有助於提升代碼編寫的質量
- 瞭解求職者對於JVM基礎的掌握程度,良好的基礎有助於快速解決GC問題、記憶體問題等
- 考察求職者的潛質,一個對技術有熱情的人,有助於更好的陪伴公司成長
所以,對於這個問題來說,我們只需要從JVM關鍵特性Write Once、Run Anywhere這個角度去切入解釋就行了。
下麵我們來看看高手應該怎麼回答。
高手:
Java虛擬機是Java語言的運行環境。
之所以需要Java虛擬機,主要是為Java語言提供Write Once,Run Anywhere能力。
實際上,一次編寫,到處運行這個能力本身是不可能實現的。因為不同的操作系統和硬體。
最終執行的指令會有較大的差異。
而Java虛擬機就是解決這個問題的,它能根據不同的操作系統和硬體差異,生成符合這個平臺機器指令。
簡單理解,它就相當於一個翻譯工具,在window下,翻譯成window可執行的指令,在linux下,翻譯成linux下可執行的指令。
除了這個因素以為,我認為自動回收垃圾這個功能也是原因之一,它讓開發者省去了垃圾回收這個工作。
減少了程式開發的複雜性。
總結
好了,今天的分享就到這裡結束了
如果喜歡我的作品,記得點贊、收藏、關註!!!
版權聲明:本博客所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自
Mic帶你學架構
!
如果本篇文章對您有幫助,還請幫忙點個關註和贊,您的堅持是我不斷創作的動力。歡迎關註「跟著Mic學架構」公眾號公眾號獲取更多技術乾貨!