必知必會JVM一-什麼是JVM?

目錄

1. 前言

2.跨平臺的方式

3.什麼是虛擬機?

4.JAVA開發包


1. 前言

大家都知道,Java程序設計語言最早的口號就是,Write Once,Run Anywhere,一次編寫,到處運行。只實現一次編碼。可以再任何平臺運行。那就吸引了大批的開發者進行嘗試,不需要在爲不同的操作系統上做適配。那麼JAVA是怎麼實現這種方式的呢?C語言我只編寫了一次,也可以在windows和linux下運行呢?那什麼叫跨平臺呢?我們來以次解答。

2.跨平臺的方式

跨平臺主要有兩種方式,一種是運行跨平臺(JAVA),一種是編譯跨平臺(C,GO)。

編譯跨平臺

編譯跨平臺例如c語言,程序寫好之後,在windows下編譯成exe,在linux編譯成可以執行文件.這就是爲什麼C寫一次也可以在不同的系統下進行運行了。但是需要在對應的系統上面對源碼重新進行編譯,如果用到了系統底層的一些函數,如果沒有做兼容,可能會出現程序不兼容的問題。

運行跨平臺

運行跨平臺就是指我們java程序經過編譯成.class文件,由java虛擬機進行解析成對應的機器字節碼,在對應的機器上運行。相當於運行JAVA的機器上都部署了一套統一的環境,由這個環境去運行JAVA程序。那提供這個環境的就是JAVA的虛擬機


 

3.什麼是虛擬機?

虛擬機是一種抽象化的計算機,通過在實際的計算機上仿真模擬各種計算機功能來實現的。Java虛擬機有自己完善的硬體架構,如處理器、堆棧、寄存器等,還具有相應的指令系統。Java虛擬機屏蔽了與具體操作系統平臺相關的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。

4.JAVA開發包

在大家安裝JAVA JDK的時候,一般會有JDK和JRE兩個比較重要的文件夾。那麼熱門分別是什麼呢。可以見下圖。

我們平時開發依賴的是JDK,因爲它提供了很多的工具包。還有一些常用的命令工具。JRE是JAVA的基本運行環境。他們的對應關係可以見官網的這張圖。

課件JDK其實是包含JRE的。單JDK比JRE多了一些工具命令。因此以後面試官再問你JDK和JRE是什麼區別的時候,別再說他們倆是一樣的東西了。

5、爲什麼學習JVM

既然JVM是JAVA已經給我們提供好了,那麼我們爲什麼要學習JVM呢?

主要想精通JAVA肯定要了解JAVA的運行原理啦,並且對於代碼優化以及OOM異常等各種問題排查都能提供很多的思路。當然,最重要的是爲了贏得同時崇拜的目光,進行裝逼啦~哈哈。今天先簡單介紹這裏,下章我們介紹下JVM重點的運行時數據區。

 

學習JAVA的童鞋可以點個關注哈,互相交流JAVA經驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章