學習java的同學都知道java是一門跨渠道的言語,
常常會聽到“一次編譯,處處運轉”這句話,
那java是怎樣就能完成這樣的跨渠道功用了,
要弄清楚這個,咱們先來看看什么是JDK,什么是JVM吧,
JDK
JDK:英文全稱為(JavaDevelopmentKit),中文意思是Java開發東西包,顧名思義,便是供給給開發人員使用的東西包,
和咱們這個問題相關的一個東西javac,便是包含在JDK這個東西包中的了,
JVM
JVM:英文全稱為(JavaVirtualMachine),便是咱們常常提到聽到的java虛擬機了,java能夠跨渠道的關鍵便是在這兒了,
弄清楚JDK和JVM之后,咱們就來聊聊java是怎樣完成“一次編譯,處處運轉”這樣的跨渠道功用的,
咱們到官網下載jdk時一定有注意到相同版本號的jdk針對不同的作業系統,供給了不同的檔案供咱們下載,
為什么會是這樣的呢,其實這是給咱們裝備了不同的翻譯官,
這些翻譯官都會兩種言語,
一種言語是這些翻譯官都會的,便是用來讀懂javac東西編譯出來的.class檔案的言語,
而另一種言語是每個翻譯官區別于其他翻譯官的,只有自己會的言語,這個言語便是針對不同作業系統的可履行指令,
提到這兒,咱們應該現已了解java是怎樣完成“一次編譯,處處運轉”這個跨渠道功用了吧,
“一次編譯”便是咱們開發好功用之后,通過javac這個東西,將咱們寫好的代碼編譯成了.class檔案,這個時分咱們不必考慮咱們的代碼功用是要放在什么渠道環境去履行,
這些編譯好的.class檔案是作業系統無法識別運轉的,這時就該咱們的翻譯官JVM出馬了,
要在什么渠道履行,只要把這些.class檔案交給咱們的翻譯官JVM(在要運轉的渠道提早安裝好),咱們的翻譯官就會把這些.class解釋成翻譯官服務的渠道能夠履行的可履行指令了,
因為針對不同渠道有不同的翻譯官,這樣java就完成了“一次編譯,處處運轉”這樣的跨渠道功用了,
想要深入了解java虛擬機的同學,能夠看看,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/155847.html
標籤:Java
下一篇:【JAVA SE基礎篇】41.Collection、List方法和ArrayList、LinkedList、Vector底層實作
