9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
學習啦 > 知識大全 > 知識百科 > 百科知識 > 什么是jvmjvm的原理

什么是jvmjvm的原理

時間: 謝君787 分享

什么是jvmjvm的原理

  JVM是一種用于計算設備的規(guī)范,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。那么你對JVM了解多少呢?以下是由學習啦小編整理關于什么是jvm的內容,希望大家喜歡!

  jvm的原理

  JVM是java的核心和基礎,在java編譯器和os平臺之間的虛擬處理器。它是一種基于下層的操作系統(tǒng)和硬件平臺并利用軟件方法來實現的抽象的計算機,可以在上面執(zhí)行java的字節(jié)碼程序。

  java編譯器只需面向JVM,生成JVM能理解的代碼或字節(jié)碼文件。Java源文件經編譯器,編譯成字節(jié)碼程序,通過JVM將每一條指令翻譯成不同平臺機器碼,通過特定平臺運行。

  JVM執(zhí)行程序的過程 :

  I.加載.class文件

  II.管理并分配內存

  III.執(zhí)行垃圾收集

  JRE(java運行時環(huán)境)包含JVM的java程序的運行環(huán)境

  JVM是Java程序運行的容器,但是他同時也是操作系統(tǒng)的一個進程,因此他也有他自己的運行的生命周期,也有自己的代碼和數據空間。

  JVM在整個jdk中處于最底層,負責與操作系統(tǒng)的交互,用來屏蔽操作系統(tǒng)環(huán)境,提供一個完整的Java運行環(huán)境,因此也就虛擬計算機.操作系統(tǒng)裝入JVM是通過jdk中Java.exe來完成,通過下面4步來完成JVM環(huán)境。

  1.創(chuàng)建JVM裝載環(huán)境和配置

  2.裝載JVM.dll

  3.初始化JVM.dll并掛接到JNIENV(JNI調用接口)實例

  4.調用JNIEnv實例裝載并處理class類。

  jvm的支持類型

  基本數據類型

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

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

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

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

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

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

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

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

  其它數據類型

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

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

  注:Java數組被當做object處理。

  虛擬機的規(guī)范對于object內部的結構沒有任何特殊的要求。在Sun公司的實現中,對object的引用是一個句柄,其中包含一對指針:一個指針指向該object的方法表,另一個指向該object的數據。用Java虛擬機的字節(jié)碼表示的程序應該遵守類型規(guī)定。Java虛擬機的實現應拒絕執(zhí)行違反了類型規(guī)定的字節(jié)碼程序。Java虛擬機由于字節(jié)碼定義的限制似乎只能運行于32位地址空間的機器上。但是可以創(chuàng)建一個Java虛擬機,它自動地把字節(jié)碼轉換成64位的形式。從Java虛擬機支持的數據類型可以看出,Java對數據類型的內部格式進行了嚴格規(guī)定,這樣使得各種Java虛擬機的實現對數據的解釋是相同的,從而保證了Java的與平臺無關性和可移植性。

  jvm的指令系統(tǒng)

  JVM指令系統(tǒng)同其他計算機的指令系統(tǒng)極其相似。Java指令也是由操作碼和操作數兩部分組成。操作碼為8位二進制數,操作數緊隨在操作碼的后面,其長度根據需要而不同。操作碼用于指定一條指令操作的性質(在這里我們采用匯編符號的形式進行說明),如iload表示從存儲器中裝入一個整數,anewarray表示為一個新數組分配空間,iand表示兩個整數的"與",ret用于流程控制,表示從對某一方法的調用中返回。當長度大于8位時,操作數被分為兩個以上字節(jié)存放。JVM采用了"big endian"的編碼方式來處理這種情況,即高位bits存放在低字節(jié)中。這同 Motorola及其他的RISC CPU采用的編碼方式是一致的,而與Intel采用的"little endian "的編碼方式即低位bits存放在低位字節(jié)的方法不同。Java指令系統(tǒng)是以Java語言的實現為目的設計的,其中包含了用于調用方法和監(jiān)視多線程系統(tǒng)的指令。Java的8位操作碼的長度使得JVM最多有256種指令,已使用了160多種操作碼。
看過“jvm的原理”的人還看了:

1.jvm內存大小怎么設

2.JVM 內存設置大小

3.java項目內存溢出怎么解決

4.Linux中怎么配置Java環(huán)境變量

5.java會內存溢出嗎

6.k3導航用什么內存卡

1883258 主站蜘蛛池模板: 18禁免费无码无遮挡不卡网站| 三上悠亚精品二区在线观看| 中文字幕日韩国产精品| 精品久久精品午夜精品久久| 亚洲爆乳成av人在线视菜奈实 | AV人摸人人人澡人人超碰| 国内精品大秀视频日韩精品 | 四虎永久在线精品无码视频| 欧洲亚洲成av人片天堂网| 深夜av在线免费观看| 日韩中文免费一区二区| 神马午夜久久精品人妻| 国产成人精品国内自产色| 一本一道av无码中文字幕麻豆| 久久69国产精品久久69软件 | 全免费A级毛片免费看无码| 蜜臀人妻精品一区二区免费| 99久久激情国产精品| 久久99热精品这里久久精品| 亚洲欧美在线一区中文字幕| 农村乱色一区二区高清视频| 亚洲AV国产福利精品在现观看| 亚洲av日韩在线资源| 中文字幕日韩一区二区不卡| 女同性恋一区二区三区视频| 亚洲欧美日韩愉拍自拍美利坚| 久久综合给合久久狠狠狠| 亚洲一区二区在线无码| 深夜宅男福利免费在线观看| 另类专区一区二区三区| 毛片一区二区在线看| 久久精品国产亚洲AⅤ无码| 亚洲v欧美v日韩v国产v| 野外做受三级视频| 视频一本大道香蕉久在线播放| 亚洲av午夜福利精品一区二区| 国产无遮挡又黄又大又爽| 久久久久久综合网天天| 国产在线视频导航| 亚洲欧美日韩综合久久| 久在线视频播放免费视频|