起點(diǎn)提供JVM下載,JVM是Java Virtual Machine的縮寫(xiě),它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能模擬來(lái)實(shí)現(xiàn)的。JVM有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM屏蔽了與具體操作系統(tǒng)平臺(tái)相關(guān)的信息,使得Java程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼,就可以在多種平臺(tái)上不加修改地運(yùn)行。

【 詳細(xì)介紹】
Java Virtual Machine 簡(jiǎn)稱(chēng)JVM,是運(yùn)行所有Java程序的抽象計(jì)算機(jī),是Java語(yǔ)言的運(yùn)行環(huán)境,它是Java 最具吸引力的特性之一。
JVM一種用于計(jì)算機(jī)設(shè)備的規(guī)范,可用不同的方式(軟件或硬件)加以實(shí)現(xiàn)。編譯虛擬機(jī)的指令集與編譯微處理器的指令集非常類(lèi)似。Java虛擬機(jī)(JVM)包括一套字節(jié)碼指令集、一組寄存器、一個(gè)棧、一個(gè)垃圾回收堆和一個(gè)存儲(chǔ)方法域。
Java虛擬機(jī)(JVM)是可運(yùn)行Java代碼的假想計(jì)算機(jī)。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計(jì)算機(jī)上,就能保證經(jīng)過(guò)編譯的任何Java代碼能夠在該系統(tǒng)上運(yùn)行。
Java虛擬機(jī)(JVM)是一個(gè)想象中的機(jī)器,在實(shí)際的計(jì)算機(jī)上通過(guò)軟件模擬來(lái)實(shí)現(xiàn)。Java虛擬機(jī)有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。
Java虛擬機(jī)(JVM)規(guī)范定義了一個(gè)抽象的——而非實(shí)際的——機(jī)器或處理器。這個(gè)規(guī)范描述了一個(gè)指令集,一組寄存器,一個(gè)堆棧,一個(gè)“垃圾堆”,和一個(gè)方法區(qū)。一旦一個(gè)Java虛擬機(jī)在給定的平臺(tái)上運(yùn)行,任何Java程序(編譯之后的程序,稱(chēng)作字節(jié)碼)都能在這個(gè)平臺(tái)上運(yùn)行。Java虛擬機(jī)(JVM)可以以一次一條指令的方式來(lái)解釋字節(jié)碼(把它映射到實(shí)際的處理器指令),或者字節(jié)碼也可以由實(shí)際處理器中稱(chēng)作just-in-time的編譯器進(jìn)行進(jìn)一步的編譯。

【 特色介紹】
Java語(yǔ)言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無(wú)關(guān)性。而使用Java虛擬機(jī)是實(shí)現(xiàn)這一特點(diǎn)的關(guān)鍵。一般的高級(jí)語(yǔ)言如果要在不同的平臺(tái)上運(yùn)行,至少需要編譯成不同的目標(biāo)代碼。而引入Java語(yǔ)言虛擬機(jī)后,Java語(yǔ)言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯。Java語(yǔ)言使用模式Java虛擬機(jī)屏蔽了與具體平臺(tái)相關(guān)的信息,使得Java語(yǔ)言編譯程序只需生成在Java虛擬機(jī)上運(yùn)行的目標(biāo)代碼(字節(jié)碼),就可以在多種平臺(tái)上不加修改地運(yùn)行。Java虛擬機(jī)在執(zhí)行字節(jié)碼時(shí),把字節(jié)碼解釋成具體平臺(tái)上的機(jī)器指令執(zhí)行。

【 原理介紹】
JVM是java的核心和基礎(chǔ),在java編譯器和os平臺(tái)之間的虛擬處理器。它是一種利用軟件方法實(shí)現(xiàn)的抽象的計(jì)算機(jī)基于下層的操作系統(tǒng)和硬件平臺(tái),可以在上面執(zhí)行java的字節(jié)碼程序。
java編譯器只要面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經(jīng)編譯成字節(jié)碼程序,通過(guò)JVM將每一條指令翻譯成不同平臺(tái)機(jī)器碼,通過(guò)特定平臺(tái)運(yùn)行。
JVM執(zhí)行程序的過(guò)程 :
I.加載.class文件
II.管理并分配內(nèi)存
III.執(zhí)行垃圾收集
JRE(java運(yùn)行時(shí)環(huán)境)包含JVM的java程序的運(yùn)行環(huán)境
JVM是Java程序運(yùn)行的容器,但是他同時(shí)也是操作系統(tǒng)的一個(gè)進(jìn)程,因此他也有他自己的運(yùn)行的生命周期,也有自己的代碼和數(shù)據(jù)空間。
JVM在整個(gè)jdk中處于最底層,負(fù)責(zé)與操作系統(tǒng)的交互,用來(lái)屏蔽操作系統(tǒng)環(huán)境,提供一個(gè)完整的Java運(yùn)行環(huán)境,因此也就虛擬計(jì)算機(jī).操作系統(tǒng)裝入JVM是通過(guò)jdk中Java.exe來(lái)完成,通過(guò)下面4步來(lái)完成JVM環(huán)境。
1.創(chuàng)建JVM裝載環(huán)境和配置
2.裝載JVM.dll
3.初始化JVM.dll并掛接到JNIENV(JNI調(diào)用接口)實(shí)例
4.調(diào)用JNIEnv實(shí)例裝載并處理class類(lèi)。

【 支持類(lèi)型】
基本數(shù)據(jù)類(lèi)型
byte://1字節(jié)有符號(hào)整數(shù)的補(bǔ)碼
short://2字節(jié)有符號(hào)整數(shù)的補(bǔ)碼
int://4字節(jié)有符號(hào)整數(shù)的補(bǔ)碼
long://8字節(jié)有符號(hào)整數(shù)的補(bǔ)碼
float://4字節(jié)IEEE754單精度浮點(diǎn)數(shù)
double://8字節(jié)IEEE754雙精度浮點(diǎn)數(shù)
char://2字節(jié)無(wú)符號(hào)Unicode字符
幾乎所有的Java類(lèi)型檢查都是在編譯時(shí)完成的。上面列出的原始數(shù)據(jù)類(lèi)型的數(shù)據(jù)在Java執(zhí)行時(shí)不需要用硬件標(biāo)記。操作這些原始數(shù)據(jù)類(lèi)型數(shù)據(jù)的字節(jié)碼(指令)本身就已經(jīng)指出了操作數(shù)的數(shù)據(jù)類(lèi)型,例如iadd、ladd、fadd和dadd指令都是把兩個(gè)數(shù)相加,其操作數(shù)類(lèi)型別是int、long、float和double。虛擬機(jī)沒(méi)有給boolean(布爾)類(lèi)型設(shè)置單獨(dú)的指令。boolean型的數(shù)據(jù)是由integer指令,包括integer返回來(lái)處理的。boolean型的數(shù)組則是用byte數(shù)組來(lái)處理的。虛擬機(jī)使用IEEE754格式的浮點(diǎn)數(shù)。不支持IEEE格式的較舊的計(jì)算機(jī),在運(yùn)行Java數(shù)值計(jì)算程序時(shí),可能會(huì)非常慢。
其它數(shù)據(jù)類(lèi)型
object//對(duì)一個(gè)Javaobject(對(duì)象)的4字節(jié)引用
returnAddress//4字節(jié),用于jsr/ret/jsr-w/ret-w指令
注:Java數(shù)組被當(dāng)做object處理。
虛擬機(jī)的規(guī)范對(duì)于object內(nèi)部的結(jié)構(gòu)沒(méi)有任何特殊的要求。在Sun公司的實(shí)現(xiàn)中,對(duì)object的引用是一個(gè)句柄,其中包含一對(duì)指針:一個(gè)指針指向該object的方法表,另一個(gè)指向該object的數(shù)據(jù)。用Java虛擬機(jī)的字節(jié)碼表示的程序應(yīng)該遵守類(lèi)型規(guī)定。Java虛擬機(jī)的實(shí)現(xiàn)應(yīng)拒絕執(zhí)行違反了類(lèi)型規(guī)定的字節(jié)碼程序。Java虛擬機(jī)由于字節(jié)碼定義的限制似乎只能運(yùn)行于32位地址空間的機(jī)器上。但是可以創(chuàng)建一個(gè)Java虛擬機(jī),它自動(dòng)地把字節(jié)碼轉(zhuǎn)換成64位的形式。從Java虛擬機(jī)支持的數(shù)據(jù)類(lèi)型可以看出,Java對(duì)數(shù)據(jù)類(lèi)型的內(nèi)部格式進(jìn)行了嚴(yán)格規(guī)定,這樣使得各種Java虛擬機(jī)的實(shí)現(xiàn)對(duì)數(shù)據(jù)的解釋是相同的,從而保證了Java的與平臺(tái)無(wú)關(guān)性和可移植性。

【 使用教程匯總】
首先,我們需要了解JVM是什么。如果你不是程序員的話(huà),可能一時(shí)半會(huì)很難理解,不過(guò)沒(méi)關(guān)系,看下小編帶您深入了解JVM。
| 深入理解Java虛擬機(jī)(JVM) |
接下來(lái)我們就要安裝JVM了,它的安裝過(guò)程非常簡(jiǎn)單,只需要按照小編為您提供的教程一步一步操作即可。
| Java虛擬機(jī)(JVM)安裝教程 |
在使用JVM過(guò)程的當(dāng)中,難免碰到各種各樣的問(wèn)題,沒(méi)人指導(dǎo)的話(huà)是很難理解的,不過(guò)沒(méi)關(guān)系,可以看下小編為您帶來(lái)的JVM常見(jiàn)問(wèn)題說(shuō)明。
| Java虛擬機(jī)(JVM)常見(jiàn)問(wèn)題說(shuō)明 |
如果你還需要其他JAVA軟件幫助您編程開(kāi)發(fā),比如JDK、JRE等,我們還為您提供了Java軟件大全。
| Java軟件大全 |


































