【转】Java虚拟机(JVM)以及跨平台原理
生活随笔
收集整理的這篇文章主要介紹了
【转】Java虚拟机(JVM)以及跨平台原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,未經博主允許不得轉載。
目錄(?)[-]
那么,跨平臺是怎樣實現的呢?這就要談及。
而這個過程中,我們編寫的Java程序沒有做任何改變,僅僅是通過JVM這一”中間層“,就能在不同平臺上運行,真正實現了”一次編譯,到處運行“的目的。
注意:編譯的結果不是生成機器碼,而是生成字節碼,字節碼不能直接運行,必須通過JVM翻譯成機器碼才能運行。不同平臺下編譯生成的字節碼是一樣的,但是由JVM翻譯成的機器碼卻不一樣。
注意:跨平臺的是Java程序,不是JVM。JVM是用C/C++開發的,是編譯后的機器碼,不能跨平臺,不同平臺下需要安裝不同版本的JVM。
圖1 ?JVM實現跨平臺
Java 推出的前幾年,人們有不同的看法,解釋字節碼肯定比全速運行機器碼慢很多,犧牲性能換來跨平臺的優勢是否值得?
現在的及時編譯器已經相當出色,甚至成了傳統編譯器的競爭對手,某些情況下甚至超過了傳統編譯器,原因是JVM可以監控運行時信息。例如,即時編譯器可以監控使用頻率高的代碼并進行優化,可以消除函數調用(即“內嵌”)。
Java 的GUI庫稱不上出色,界面不算友好,大部分用戶不太習慣;Java 的客戶端資源消耗也比較大,大數據量的應用和功能復雜的應用性能堪憂。
雖然你可以將JVM集成在你的程序中,自動安裝并設置,不讓用戶干預,但是你希望附帶一個比你的程序還要大好多的JVM嗎?一個軟件這樣做或許可以接受,成千上萬個軟件都這樣做,那用戶要安裝多少個JVM?磁盤空間要浪費多少?
種種原因,注定了Java客戶端不利于推向市場,讓普通用戶接受。不過話又說回來,客戶端開發也不是Java的初衷,Java最初是面向嵌入式的,卻隨著互聯網的興起而快速成長,在Web開發上大顯身手。
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的【转】Java虚拟机(JVM)以及跨平台原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】推荐10本C#编程的最佳书籍
- 下一篇: C# 数组