成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

術語匯編 JVM技術全面解析

開發 后端
這里向大家描述一下JVM的概念,JVM就是指Java虛擬機,說起Java,人們首先想到的是Java編程語言,然而事實上,Java是一種技術,它由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(JavaAPI)。

本文和大家一起學習一下JVM技術,JVM的意思是Java虛擬機,Java虛擬機(JavaVirtualMachine)簡稱JVMJava虛擬機是一個想象中的機器,在實際的計算機上通過軟件模擬來實現。

1Java技術與Java虛擬機

說起Java,人們首先想到的是Java編程語言,然而事實上,Java是一種技術,它由四方面組成:Java編程語言、Java類文件格式、Java虛擬機和Java應用程序接口(JavaAPI)。它們的關系如下圖所示:

Java四個方面的關系

圖1Java四個方面的關系

運行期環境代表著Java平臺,開發人員編寫Java代碼(.java文件),然后將之編譯成字節碼(.class文件)。最后字節碼被裝入內存,一旦字節碼進入虛擬機,它就會被解釋器解釋執行,或者是被即時代碼發生器有選擇的轉換成機器碼執行。從上圖也可以看出Java平臺由Java虛擬機和Java應用程序接口搭建,Java語言則是進入這個平臺的通道,用Java語言編寫并編譯的程序可以運行在這個平臺上。這個平臺的結構如下圖所示:

Java平臺結構

在Java平臺的結構中,可以看出,Java虛擬機(JVM)處在核心的位置,是程序與底層操作系統和硬件無關的關鍵。它的下方是移植接口,移植接口由兩部分組成:適配器和Java操作系統,其中依賴于平臺的部分稱為適配器;JVM通過移植接口在具體的平臺和操作系統上實現;在JVM的上方是Java的基本類庫和擴展類庫以及它們的API,利用JavaAPI編寫的應用程序(application)和小程序(Javaapplet)可以在任何Java平臺上運行而無需考慮底層平臺,就是因為有Java虛擬機(JVM)實現了程序與操作系統的分離,從而實現了Java的平臺無關性。

◆那么到底什么是Java虛擬機(JVM)呢?通常我們談論JVM時,我們的意思可能是:

對JVM規范的的比較抽象的說明;

對JVM的具體實現;

在程序運行期間所生成的一個JVM實例。

對JVM規范的的抽象說明是一些概念的集合,它們已經在書《TheJavaVirtualMachineSpecification》(《Java虛擬機規范》)中被詳細地描述了;對JVM的具體實現要么是軟件,要么是軟件和硬件的組合,它已經被許多生產廠商所實現,并存在于多種平臺之上;運行Java程序的任務由JVM的運行期實例單個承擔。在本文中我們所討論的Java虛擬機(JVM)主要針對第三種情況而言。它可以被看成一個想象中的機器,在實際的計算機上通過軟件模擬來實現,有自己想象中的硬件,如處理器、堆棧、寄存器等,還有自己相應的指令系統。

JVM在它的生存周期中有一個明確的任務,那就是運行Java程序,因此當Java程序啟動的時候,就產生JVM的一個實例;當程序運行結束的時候,該實例也跟著消失了。下面我們從JVM的體系結構和它的運行過程這兩個方面來對它進行比較深入的研究。#p#

2Java虛擬機的體系結構

剛才已經提到,JVM可以由不同的廠商來實現。由于廠商的不同必然導致JVM在實現上的一些不同,然而JVM還是可以實現跨平臺的特性,這就要歸功于設計JVM時的體系結構了。

我們知道,一個JVM實例的行為不光是它自己的事,還涉及到它的子系統、存儲區域、數據類型和指令這些部分,它們描述了JVM的一個抽象的內部體系結構,其目的不光規定實現JVM時它內部的體系結構,更重要的是提供了一種方式,用于嚴格定義實現時的外部行為。每個JVM都有兩種機制,一個是裝載具有合適名稱的類(類或是接口),叫做類裝載子系統;另外的一個負責執行包含在已裝載的類或接口中的指令,叫做運行引擎。每個JVM又包括方法區、堆、Java棧、程序計數器和本地方法棧這五個部分,這幾個部分和類裝載機制與運行引擎機制一起組成的體系結構圖為:

JVM的體系結構

JVM的每個實例都有一個它自己的方法域和一個堆,運行于JVM內的所有的線程都共享這些區域;當虛擬機裝載類文件的時候,它解析其中的二進制數據所包含的類信息,并把它們放到方法域中;當程序運行的時候,JVM把程序初始化的所有對象置于堆上;而每個線程創建的時候,都會擁有自己的程序計數器和Java棧,其中程序計數器中的值指向下一條即將被執行的指令,線程的Java棧則存儲為該線程調用Java方法的狀態;本地方法調用的狀態被存儲在本地方法棧,該方法棧依賴于具體的實現。#p#

3.Java虛擬機的運行過程

上面對虛擬機的各個部分進行了比較詳細的說明,下面通過一個具體的例子來分析它的運行過程。

虛擬機通過調用某個指定類的方法main啟動,傳遞給main一個字符串數組參數,使指定的類被裝載,同時鏈接該類所使用的其它的類型,并且初始化它們。例如對于程序:

  1. classHelloApp  
  2. {  
  3. publicstaticvoidmain(String[]args)  
  4. {  
  5. System.out.println(“HelloWorld!”);  
  6.  
  7. for(inti=0;i《args.length;i++)  
  8. {  
  9. System.out.println(args[i]);  
  10. }  
  11. }  
  12. }  
  13.  

 

編譯后在命令行模式下鍵入:javaHelloApprunvirtualmachine

將通過調用HelloApp的方法main來啟動java虛擬機,傳遞給main一個包含三個字符串“run”、“virtual”、“machine”的數組。現在我們略述虛擬機在執行HelloApp時可能采取的步驟。

開始試圖執行類HelloApp的main方法,發現該類并沒有被裝載,也就是說虛擬機當前不包含該類的二進制代表,于是虛擬機使用ClassLoader試圖尋找這樣的二進制代表。如果這個進程失敗,則拋出一個異常。類被裝載后同時在main方法被調用之前,必須對類HelloApp與其它類型進行鏈接然后初始化。鏈接包含三個階段:檢驗,準備和解析。檢驗檢查被裝載的主類的符號和語義,準備則創建類或接口的靜態域以及把這些域初始化為標準的默認值,解析負責檢查主類對其它類或接口的符號引用,在這一步它是可選的。類的初始化是對類中聲明的靜態初始化函數和靜態域的初始化構造方法的執行。一個類在初始化之前它的父類必須被初始化。整個過程如下:

 

Java虛擬機的運行過程

4結束語

本文通過對JVM的體系結構的深入研究以及一個Java程序執行時虛擬機的運行過程的詳細分析,意在剖析清楚Java虛擬機的機理。

【編輯推薦】

  1. JVM學習筆記之常見JVM機制
  2. 典型JVM參數配置方法揭秘
  3. 巧解Tomcat中JVM內存溢出問題
  4. 新一代JVM垃圾回收算法出爐
  5. 揭露JDK,JRE,JVM三者不為人知的隱情
責任編輯:佚名 來源: bangkaow.com
相關推薦

2010-06-29 15:06:14

UML建模

2010-06-08 17:18:50

UML建模技術

2010-06-12 11:37:40

UML建模技術

2010-07-01 09:38:39

Visio UML建

2010-07-15 17:50:47

Perl模式

2010-07-28 15:21:01

Flex函數

2010-07-14 15:05:21

Perl文件句柄

2010-07-01 15:53:09

UML組件圖

2010-06-18 18:07:19

UML用例圖

2010-07-05 17:28:57

UML動態模型圖

2010-07-09 13:16:46

UML動態建模機制

2010-09-28 08:54:49

JavascriptDOM

2010-06-30 17:46:36

UML用例建模

2010-07-02 10:38:53

UML模型圖

2010-06-30 14:24:02

UML類圖建模

2010-07-01 14:04:23

UML時序圖

2010-06-07 13:02:46

Hadoop簡介

2010-08-05 14:51:36

AdobeFlex

2010-07-09 17:21:32

UML狀態圖

2010-07-13 10:21:19

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美久久一区二区三区 | 久久国产欧美日韩精品 | 成人在线免费观看视频 | 亚洲a毛片 | 青青草亚洲 | 欧美一区二区三区在线观看 | 围产精品久久久久久久 | 国产成人av一区二区三区 | 黄色毛片免费 | 国产91 在线播放 | 欧美日韩一区二区三区四区五区 | 91中文字幕 | 伊色综合久久之综合久久 | 日韩一区二区福利视频 | 色欧美综合 | 日韩欧美国产不卡 | 中日字幕大片在线播放 | 日本三级网站在线观看 | 国产原创在线观看 | 国产一区二区三区视频 | 黄色av网站在线观看 | 毛片区| 日本不卡一区 | 日日操日日舔 | 久久大陆 | 久久精品亚洲欧美日韩久久 | 国产精品一区二区无线 | 91久久精品一区二区二区 | 精品视频www | 日韩免费视频 | 国产一区免费视频 | 欧美美女二区 | 欧美一区二区三区在线观看 | 久久偷人| 亚洲色图综合 | 精品日韩一区 | 日韩伦理一区二区 | 国产又色又爽又黄又免费 | 国产精品一区二区三区四区 | 婷婷色网 | 亚洲成人久久久 |