002-如何理解Java的平臺獨立性

002.jpg

本文首發於公衆號:javaadujava

Java有句很是有名的口號——「一次編寫,處處運行」,依靠的就是JVM提供的平臺獨立性,本質上來說,就是經過虛擬機技術,經過限制一些功能,達到屏蔽底層細節的目的。更具體得說,Java的平臺獨立性體如今兩個方面:體系結構無關、可移植。面試

體系結構無關

JVM裏設計了一套字節碼指令系統,這套指令系統跟特定的體系結構沒有關係。精心設計的字節碼不只能夠在各個機器上運行,還能夠迅速得翻譯成本地機器的代碼。解釋字節碼運行確定比先編譯後運行慢得多,所以虛擬機提供了即時編譯子系統,用於將使用最頻繁的字節碼翻譯成本地指令,這個策略十分有效。算法

可移植
  • 與C和C++不一樣,Java規範中沒有「依賴具體實現」的地方,基本數據類型的大小以及有關的算法都作了明確的定義。例如:在Java中int永遠爲32位整數,而在C/C++中,int多是16位整數、32位整數,也多是編譯器提供商指定的其餘大小。
  • 做爲系統組成部分的類庫,定義了可移植的接口。例如:一個抽象的Window類給出了在UNIX、Windows和Mac OS環境不一樣的實現;文件路徑分隔符——File.separator,針對不一樣的文件系統也有不一樣的實現。

本號專一於後端技術、JVM問題排查和優化、Java面試題、我的成長和自我管理等主題,爲讀者提供一線開發者的工做和成長經驗,期待你能在這裏有所收穫。javaadu後端

相關文章
相關標籤/搜索