自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

名詞釋義 什么是JVM?

開發(fā) 后端
JVM是什么,經(jīng)常聽到這樣的問題,這里向大家簡單介紹一下,JVM全稱是JavaVirtualMachine(Java虛擬機),它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。

本節(jié)和大家重點討論一下JVM是什么,JVM(Java虛擬機)一種用于計算設(shè)備的規(guī)范,可用不同的方式(軟件或硬件)加以實現(xiàn)。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。

JVM是什么?

  JavaVirtualMachine(Java虛擬機),它是一個虛構(gòu)出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現(xiàn)的。Java虛擬機有自己完善的硬件架構(gòu),如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。JVM屏蔽了與具體操作系統(tǒng)平臺相關(guān)的信息,使得Java程序只需生成在Java虛擬機上運行的目標代碼(字節(jié)碼),就可以在多種平臺上不加修改地運行。Java虛擬機在執(zhí)行字節(jié)碼時,實際上最終還是把字節(jié)碼解釋成具體平臺上的機器指令執(zhí)行?! ?/p>

JVM(Java虛擬機)一種用于計算設(shè)備的規(guī)范,可用不同的方式(軟件或硬件)加以實現(xiàn)。編譯虛擬機的指令集與編譯微處理器的指令集非常類似。Java虛擬機包括一套字節(jié)碼指令集、一組寄存器、一個棧、一個垃圾回收堆和一個存儲方法域?! ?/p>

Java虛擬機(JVM)是可運行Java代碼的假想計算機。只要根據(jù)JVM規(guī)格描述將解釋器移植到特定的計算機上,就能保證經(jīng)過編譯的任何Java代碼能夠在該系統(tǒng)上運行?! ?/p>

Java虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現(xiàn)。Java虛擬機有自己想象中的硬件,如處理器、堆棧、寄存器等,還具有相應(yīng)的指令系統(tǒng)。

Java虛擬機(JVM)概述

1.為什么要使用Java虛擬機   

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

2.誰需要了解Java虛擬機   

Java虛擬機是Java語言底層實現(xiàn)的基礎(chǔ),對Java語言感興趣的人都應(yīng)對Java虛擬機有個大概的了解。這有助于理解Java語言的一些性質(zhì),也有助于使用Java語言。對于要在特定平臺上實現(xiàn)Java虛擬機的軟件人員,Java語言的編譯器作者以及要用硬件芯片實現(xiàn)Java虛擬機的人來說,則必須深刻理解Java虛擬機的規(guī)范。另外,如果你想擴展Java語言,或是把其它語言編譯成Java語言的字節(jié)碼,你也需要深入地了解Java虛擬機。   

3.Java虛擬機支持的數(shù)據(jù)類型   

Java虛擬機支持Java語言的基本數(shù)據(jù)類型如下:   

byte://1字節(jié)有符號整數(shù)的補碼   

short://2字節(jié)有符號整數(shù)的補碼   

int://4字節(jié)有符號整數(shù)的補碼   

long://8字節(jié)有符號整數(shù)的補碼   

float://4字節(jié)IEEE754單精度浮點數(shù)   

double://8字節(jié)IEEE754雙精度浮點數(shù)   

char://2字節(jié)無符號Unicode字符   

幾乎所有的Java類型檢查都是在編譯時完成的。上面列出的原始數(shù)據(jù)類型的數(shù)據(jù)在Java執(zhí)行時不需要用硬件標記。操作這些原始數(shù)據(jù)類型數(shù)據(jù)的字節(jié)碼(指令)本身就已經(jīng)指出了操作數(shù)的數(shù)據(jù)類型,例如iadd、ladd、fadd和dadd指令都是把兩個數(shù)相加,其操作數(shù)類型別是int、long、float和double。虛擬機沒有給boolean(布爾)類型設(shè)置單獨的指令。boolean型的數(shù)據(jù)是由integer指令,包括integer返回來處理的。boolean型的數(shù)組則是用byte數(shù)組來處理的。虛擬機使用IEEE754格式的浮點數(shù)。不支持IEEE格式的較舊的計算機,在運行Java數(shù)值計算程序時,可能會非常慢。  

Java虛擬機支持的其它數(shù)據(jù)類型包括:   

object//對一個Javaobject(對象)的4字節(jié)引用   

returnAddress//4字節(jié),用于jsr/ret/jsr-w/ret-w指令  

注:Java數(shù)組被當作object處理。   

虛擬機的規(guī)范對于object內(nèi)部的結(jié)構(gòu)沒有任何特殊的要求。在Sun公司的實現(xiàn)中,對object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向該object的數(shù)據(jù)。用Java虛擬機的字節(jié)碼表示的程序應(yīng)該遵守類型規(guī)定。Java虛擬機的實現(xiàn)應(yīng)拒絕執(zhí)行違反了類型規(guī)定的字節(jié)碼程序。

Java虛擬機由于字節(jié)碼定義的限制似乎只能運行于32位地址空間的機器上。但是可以創(chuàng)建一個Java虛擬機,它自動地把字節(jié)碼轉(zhuǎn)換成64位的形式。從Java虛擬機支持的數(shù)據(jù)類型可以看出,Java對數(shù)據(jù)類型的內(nèi)部格式進行了嚴格規(guī)定,這樣使得各種Java虛擬機的實現(xiàn)對數(shù)據(jù)的解釋是相同的,從而保證了Java的與平臺無關(guān)性和可移植性。

【編輯推薦】

  1. 專家答疑 什么是JVM?
  2. 發(fā)現(xiàn)Java虛擬機內(nèi)存泄露問題
  3. 幾個Java虛擬機命令行參數(shù)用法說明
  4. JVM上的動態(tài)語言 各大巨頭的新寵
  5. Java虛擬機(JVM)中的內(nèi)存設(shè)置詳解
責任編輯:佚名 來源: hi.baidu.com
相關(guān)推薦

2010-09-27 14:01:03

JVMJava虛擬機

2010-07-30 15:07:30

Flex簡介

2010-05-18 10:53:25

2010-06-07 18:04:07

UML

2010-07-27 09:30:22

2010-08-20 16:19:00

Padding-top

2021-06-03 08:32:18

JVM調(diào)優(yōu)虛擬機

2010-09-17 13:10:29

JVMJava虛擬機

2020-04-01 08:33:51

程序員語言系統(tǒng)

2024-11-25 08:31:50

JVMJava內(nèi)存管理

2023-10-07 08:41:42

JavaJVM

2022-02-16 22:50:28

JVMJDKJRE

2024-07-30 14:01:51

Java字節(jié)碼JVM?

2021-03-20 22:46:22

IaaSSaaSPaaS

2023-09-01 13:49:00

內(nèi)存進程線程

2021-07-09 13:11:50

JVMJava程序員

2009-07-08 14:23:40

JVM是什么

2011-12-05 12:42:31

JavaJ2EEJVM

2021-09-08 17:16:00

JVM反射 Java

2020-07-14 14:59:00

控制反轉(zhuǎn)依賴注入容器
點贊
收藏

51CTO技術(shù)棧公眾號