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

JVM體系結(jié)構(gòu)目的和原理

開發(fā) 后端
我們本文將從較深層次出發(fā),首先介紹Java虛擬機JVM的體系結(jié)構(gòu),然后說明Java的類文件(.class)的組成以及Java程序從編譯到執(zhí)行的完整過程,并說明這一過程中的安全處理措施。

JVM體系結(jié)構(gòu)由五部分組成,分別是寄存器、棧、廢區(qū)收集堆、存儲區(qū)和指令集,這五部分是Java虛擬機的邏輯成份,不依賴任何實現(xiàn)技術(shù)或組織方式,但它們的功能必須在真實機器上以某種方式實現(xiàn)。

JVM體系結(jié)構(gòu)目的和原理

  Java的設計目的是應用于當前使用日益廣泛、影響日益擴大的互連網(wǎng)絡。這是一個異構(gòu)平臺環(huán)境,可能存在多種不機型,如Intel公司的x86系列,Apple/IBM/Motorola公司的PowerPC機等等。每一種機型都有其特定的中央處理機(CPU)芯片,各芯片的處理過程是不同的。因而通用軟件通常需要為每一種類型的機器特別編寫版本,以保證正確運行。為了克服這一困難,實現(xiàn)語言的通用性和易移植性,Java的設計者采取的方法是選擇一種機器作為編譯的目標機,再將編譯結(jié)果在其它機型上解釋執(zhí)行。但選中的目標機并非上述任何一種實用機型,而是一個假設的處理機平臺,稱為Java虛擬機JVM(JavaVirtualMachine)。

那么,什么是Java虛擬機呢?

    我們可以把它定義為:運行編譯生成的Java目標代碼(即.class類文件)的計算機的實現(xiàn)。JVM體系結(jié)構(gòu)實際上是建立在實際處理機基礎上的假想計算機。這一假想機可以通過軟件仿真實現(xiàn),也可以通過硬件實現(xiàn)。鑒于目前大多數(shù)Java虛擬機還是用軟件方法實現(xiàn)的,我們這里介紹的內(nèi)容也多基于軟件實現(xiàn)。

  Java編譯器產(chǎn)生的字節(jié)碼由JVM指令構(gòu)成,而JVM是虛設的,不接近于任何一種實用機型,這樣,一方面編譯結(jié)果具有平臺中立性,不同機型的解釋器都可以將字節(jié)碼文件轉(zhuǎn)換為本機型CPU芯片的適宜機器碼來執(zhí)行。對JVM這一層次而言,操作系統(tǒng)和硬件層都是透明的,用戶編寫的Java程序,可以在任何平臺上運行而無需修改。另一方面,編譯生成的字節(jié)碼接近源生碼(nativecode),可以在任何硬件平臺上以較高速度解釋運行,實現(xiàn)較高的效率。這樣,Java通過虛擬機JVM來試圖達到分布式系統(tǒng)的兩個相抵觸的重要特性:易移植性和高效性之間的平衡和協(xié)調(diào)。

  接著,我們進一步了解一下JVM體系結(jié)構(gòu),包括JVM的指令集、操作碼和操作數(shù)語法以及取值范圍等?!?br />  

【編輯推薦】

  1. Java虛擬機概念及體系結(jié)構(gòu)
  2. 簡單介紹Inside JVM體系結(jié)構(gòu)
  3. 深入Java虛擬機:JVM中的Stack和Heap
  4. Java虛擬機發(fā)展回顧 為跨平臺而生
  5. Java虛擬機(JVM)中的內(nèi)存設置詳解

 

責任編輯:佚名 來源: douzhe.com
相關推薦

2010-09-25 13:38:23

Inside JVM

2020-04-15 21:43:22

JVMJavaVMware

2009-07-09 13:52:41

Inside JVM

2009-06-03 09:11:03

Hibernate工作原理體系結(jié)構(gòu)

2010-09-27 09:43:07

JVM體系結(jié)構(gòu)

2011-11-30 14:12:05

JavaJVM虛擬機

2009-02-04 09:48:39

體系結(jié)構(gòu)服務原理Web

2016-07-28 23:19:10

云計算SOA

2011-06-30 09:07:00

Java EEWeb服務

2012-02-06 17:22:44

MySQL

2014-07-23 09:33:52

2009-07-15 13:46:26

Swing體系結(jié)構(gòu)

2018-04-23 09:25:24

MySQL結(jié)構(gòu)存儲

2009-06-26 15:58:28

EJB

2009-09-11 10:38:03

LINQ體系結(jié)構(gòu)

2023-05-31 08:19:00

體系結(jié)構(gòu)設計

2009-09-08 14:34:42

Linq to SQL

2009-07-10 16:07:10

TikeSwing創(chuàng)建MVC體系結(jié)構(gòu)

2010-04-23 09:13:05

Oracle體系結(jié)構(gòu)

2016-12-26 10:29:01

Spring框架結(jié)構(gòu)
點贊
收藏

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