Java為什么能夠跨平台?


首先介紹一下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++了。
更多技術資訊可關注:itheimaGZ獲取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM