首先介紹一下Java的各個層級,先放一張圖: 硬體,操作系統和操作系統介面:這三級不說大家都知道,操作系統有很多種,比如Windows,Linux。Windows又分為win7,win10,win xp等等;Linux有Ubuntu,CentOS;操作系統介面就是系統為開發者預留的,方便調用從而控制 ...
首先介紹一下Java的各個層級,先放一張圖:
硬體,操作系統和操作系統介面:這三級不說大家都知道,操作系統有很多種,比如Windows,Linux。Windows又分為win7,win10,win xp等等;Linux有Ubuntu,CentOS;操作系統介面就是系統為開發者預留的,方便調用從而控制操作系統的硬體,它不需要讓程式員知道是怎麼實現的,只需要知道參數即可。但是不同的系統肯定有不同的介面,甚至同一系列的操作系統之間,介面也有所不同,就比如win7與win10之間,操作系統介面肯定有差異。記住這一點,我們繼續往下看:
我們知道各個系統之間的介面不同,如果想在不同的操作系統上實現同樣的功能,勢必要做一些改變才行,甚至兩個操作系統差別很大,要在不同平臺實現同樣的功能就代表要做兩套程式出來。但是java程式為什麼能夠不在乎這樣的差別,做一個程式就可以面向所有操作系統呢?這就是JVM的作用了。
JVM即Java虛擬機,它的主要作用就是相當於一個翻譯官,JVM來向下關聯所有操作系統,他能操作所有操作系統,向上提供統一介面,也就是JavaAPI,程式員只要面向JVM編程,將想要讓操作系統做的告訴JVM,它就會去跟操作系統轉達,至於到底怎麼轉達的,這個完全不用去考慮。這樣一來,只要面向JVM編程,就可以做到一個程式在所有平臺上都能運行。Java語言和平臺無關,這就是Java能夠跨平臺的原因。
順便提一嘴:跨平臺會造成什麼呢?Java通過JVM翻譯,C/C++沒有這樣的過程,所以可以肯定的一點是Java運行速度不如C/C++的速度。但是隨著JVM虛擬機的技術和系統硬體的發展,以後說不定Java的速度就能趕超C/C++了。