JVM(Java虛擬機)概述
可能有很多學習Java的朋友還不知道Java的運行原理、Java虛擬機(JVM)是怎么工作的,本文將為你詳細講解Java虛擬機(JVM)的概念,JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。
JVM(Java虛擬機)詳細講解
在Java中引入了Java虛擬機的概念,即在機器和編譯程序之間加入了一層抽象的虛擬的機器。這臺虛擬的機器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機,生成虛擬機能夠理解的代碼,然后由解釋器來將虛擬機代碼轉換為特定系統的機器碼執行。
在Java中,這種供虛擬機理解的代碼叫做字節碼(ByteCode),它不面向任何特定的處理器,只面向虛擬機。每一種平臺的解釋器是不同的,但是實現的虛擬機是相同的。Java源程序經過編譯器編譯后變成字節碼,字節碼由虛擬機解釋執行,虛擬機將每一條要執行的字節碼送給解釋器,解釋器將其翻譯成特定機器上的機器碼,然后在特定的機器上運行。
可以說,Java虛擬機(JVM)是Java語言的基礎。它是Java技術的重要組成部分。Java虛擬機(JVM)是一個抽象的計算機,和實際的計算機一樣,它具有一個指令集并使用不同的存儲區域。它負責執行指令,還要管理數據、內存和寄存器。Java解釋器負責將字節代碼翻譯成特定機器的機器代碼。Java是一種簡單的語言。它用到的概念不多,而且多為程序員所熟悉。如果你是一名程序員,掌握Java對你來說是易如反掌的事。即使你沒有學過任何編程語言,學習Java也要比學習C++要容易的多。
由于Java最初是為控制電子產品設計的,因此它必須簡單明了。為了保證這種簡單性,Java去掉了C++中許多復雜的、冗余的、有二義性的概念,例如操作符重載、多繼承、數據類型自動轉換等。為了將程序員從復雜的內存管理的負擔中解脫出來,同時也是為了減少錯誤,Java使用了自動內存垃圾收集機制,程序員只要在需要的時候申請即可,不需要釋放,而由Java自己來收集、釋放內存中的無用的塊。
與C++相比,Java有著更強的面向對象特性,是一種比較純粹的面向對象語言。一般我們使用的一些所謂的面向對象的編程語言,如C++,Object Pascal等,實際上都是一種混合型的語言,即在過程式的語言中加上面向對象的擴展。在Java中,幾乎萬物皆對象,就連一些基本數據類型,如整型、字符型、浮點型等,在Java中都可以作為對象處理。Java的面向對象特性幾乎可以與Smalltalk媲美,但是其適用于分布式計算環境的特性卻遠遠超過了Smalltalk。
【編輯推薦】
- 深入學習JVM內存設置原理和調優
- JVM體系結構目的和原理
- JVM.dll裝載過程與源代碼分析
- 巧解使Eclipse崩潰的JVM terminated問題
- 解決JVM Terminated.ExitCode=-1問題行之有效的方法