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

JVM實(shí)現(xiàn)機(jī)制及內(nèi)部基本概念

開發(fā) 后端
這里向大家描述一下JVM實(shí)現(xiàn)機(jī)制,Java虛擬機(jī)就是一個(gè)小的計(jì)算機(jī),有自己的指令集,有自己的文件系統(tǒng),管理內(nèi)部的表和數(shù)據(jù),負(fù)責(zé)讀取class文件里面字節(jié)碼。

你對(duì)JVM實(shí)現(xiàn)機(jī)制是否熟悉,這里和大家分享一下,Window的JVM能把字節(jié)碼轉(zhuǎn)換成Window系統(tǒng)的指令集,Linux的JVM能把字節(jié)碼轉(zhuǎn)換成Linux系統(tǒng)的字節(jié),同理還有Solaris,它們彼此之間是不能通用的。

1.JVM實(shí)現(xiàn)機(jī)制

Java虛擬機(jī)就是一個(gè)小的計(jì)算機(jī),有自己的指令集,有自己的文件系統(tǒng),管理內(nèi)部的表和數(shù)據(jù),負(fù)責(zé)讀取class文件里面字節(jié)碼,然后轉(zhuǎn)換成不同操作系統(tǒng)的CPU指令,從而使得Java程序在不同的操作系統(tǒng)上順利的跑起來。所以Window的JVM能把字節(jié)碼轉(zhuǎn)換成Window系統(tǒng)的指令集,Linux的JVM能把字節(jié)碼轉(zhuǎn)換成Linux系統(tǒng)的字節(jié),同理還有Solaris,它們彼此之間是不能通用的。

最早一款的原型雖然是Sun公司開發(fā)的,但發(fā)展到現(xiàn)在其實(shí)任何廠商都可以自己去實(shí)現(xiàn)一個(gè)虛擬機(jī),用來讀取字節(jié)碼轉(zhuǎn)換成OS指令。甚至我們可以認(rèn)為JVM跟Java編程語言都沒有關(guān)系,因?yàn)槟阕约耗呐掠糜浭卤緦懸淮止?jié)碼,也可以讓JVM來解析運(yùn)行,只要你的字節(jié)碼能通過JVM的驗(yàn)證。

JVM的驗(yàn)證其實(shí)是很嚴(yán)格的,這里只講一些有趣的地方。大家還記得Java的圖標(biāo)是一個(gè)杯咖啡麼?究其歷史我們也許可以查出為什么,但還有更顯而易見的方式是JVM怎么判斷一個(gè)文件是否是class文件?JVM的做法是讀取前4個(gè)字節(jié)轉(zhuǎn)換成16進(jìn)制數(shù),判斷是否等于0xCAFEBABE這個(gè)數(shù)。注意到這個(gè)單詞了麼?

“cafebabe”,代表著國外一種咖啡品牌,似乎叫做Peet’scoffee-baristas之類。創(chuàng)造Java的人為了方便記憶,選擇了這樣一個(gè)16進(jìn)制數(shù)作為標(biāo)準(zhǔn)class文件的頭,所以任何class文件都必須具有這4個(gè)字節(jié)的頭部。我們可以用DataInput這個(gè)接口的實(shí)現(xiàn)類來驗(yàn)證一下,讀取任何一個(gè)class文件的***個(gè)int,int在Java里面是四個(gè)字節(jié)。轉(zhuǎn)換成16進(jìn)制一定會(huì)是0xcafebabe的。
所以這里想告訴大家的是,JVM其實(shí)并沒有那么神秘,我們完全可以理解它的構(gòu)造。介紹完了JVM實(shí)現(xiàn)機(jī)制再來看一下JVM內(nèi)部的基本概念。

2.JVM內(nèi)部的基本概念

Java虛擬機(jī)內(nèi)部有一些概念,全部列舉是不現(xiàn)實(shí)的,太繁瑣也沒有意義。除非您真的想自己去做一個(gè)JVM。筆者只列舉部分概念:
首先我們來看一個(gè)叫做ReturnAddress的變量,它是JVM用來存儲(chǔ)方法出口或者說進(jìn)行跳轉(zhuǎn)的依據(jù),把任何地址存入這個(gè)變量就一定會(huì)按照這個(gè)地址來跳轉(zhuǎn)。我們需要注意的就是finally有比方法return更高的賦值給ReturnAddress的優(yōu)先級(jí)。同時(shí)存在方法return和finallyreturn的話,一定是按照finally里面的return為準(zhǔn)。

JVM有自己的Heap,能被所有線程共享,存儲(chǔ)著所有的對(duì)象,內(nèi)存是動(dòng)態(tài)被分配的。對(duì)于每個(gè)線程,擁有自己的Stack,棧里面存儲(chǔ)的單位叫做Frame(楨)。楨里面就記錄著零時(shí)變量、對(duì)象引用地址、方法返回值等數(shù)據(jù)。JVM還有一個(gè)叫做MethodArea的地方,存儲(chǔ)著一段一段的可執(zhí)行代碼,每一段就是一個(gè)方法體,也能被所有線程共享。所以我們說一個(gè)線程其實(shí)從run方法跑起來,跟它的類中聲明的其他方法是兩個(gè)概念。因?yàn)槠渌姆椒òǖ乃械膶?duì)象,這個(gè)時(shí)候都充當(dāng)為資源被線程使用。

JVM有自己管理內(nèi)存的方案,因?yàn)樗哂形募到y(tǒng)的功能,我們可以看成一個(gè)小型的數(shù)據(jù)庫,內(nèi)部有許許多多不同的表。表的字段可能是另外一張表的地址,也可以直接就是一個(gè)存儲(chǔ)數(shù)據(jù)值的地址值。JVM所有對(duì)運(yùn)行時(shí)候類的解析驗(yàn)證計(jì)算等管理工作,實(shí)際上都是在管理這些表的變動(dòng),如果我們從數(shù)據(jù)庫的角度來看,JVM所做的就是根據(jù)你的代碼來操作那么多個(gè)表***返回給你結(jié)果的過程。里面的表結(jié)構(gòu)包括class的表、field表、method表、attribute表等。本節(jié)關(guān)于JVM實(shí)現(xiàn)機(jī)制的內(nèi)容介紹到這里,請(qǐng)關(guān)注本文其他相關(guān)報(bào)道。

【編輯推薦】

  1. MyEclipse設(shè)置JVM突破內(nèi)存限制
  2. 探究JVM1.6與JVM1.5性能差距
  3. JVM內(nèi)存泄漏問題產(chǎn)生及檢測方案
  4. 全面認(rèn)識(shí)Eclipse中JVM內(nèi)存設(shè)置
  5. JVM啟動(dòng)參數(shù)中標(biāo)準(zhǔn)參數(shù)列表速查手冊(cè)


 

責(zé)任編輯:佚名 來源: javabk.com
相關(guān)推薦

2010-02-02 15:30:05

C++ include

2011-03-28 11:05:17

ODBC

2010-03-01 17:57:11

WCF緩存機(jī)制

2010-02-06 14:04:58

C++內(nèi)存使用機(jī)制

2014-04-16 15:11:19

Spark

2012-09-11 14:39:03

Moosefs

2009-03-20 11:46:10

MGCP協(xié)議網(wǎng)關(guān)

2011-04-01 12:37:19

路由

2009-12-21 10:27:52

WCF基本概念

2010-02-23 16:32:29

WCF服務(wù)

2017-04-07 10:19:22

交易支付概念

2010-06-24 13:26:53

FTP協(xié)議

2009-12-29 18:29:09

Silverlight

2010-07-07 15:17:40

LDAP協(xié)議

2010-08-23 16:58:17

DHCP協(xié)議

2012-12-03 17:12:10

HDFS

2009-08-18 10:34:31

Java入門基本概念

2010-07-12 09:43:38

Symbian開發(fā)

2011-07-19 13:44:39

JavaScript

2013-04-16 10:45:52

Android基本概念
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 色爱综合 | 古典武侠第一页久久777 | 精品伊人久久 | ww 255hh 在线观看 | 国产一区二区三区日韩 | 国产精品视频免费看 | 看片一区| 中文字幕一区二区视频 | 亚洲一区二区在线播放 | 91久久精品国产91久久 | 青青草国产在线观看 | 婷婷久久五月 | 久久一区二区精品 | 日韩一区二区三区视频 | av看片| 在线观看亚洲一区二区 | 国内精品视频在线 | 精品欧美 | 午夜黄色影院 | 在线免费观看黄色 | 色www精品视频在线观看 | 国产亚洲一区二区三区在线 | 免费一级片| 国产成人精品一区二区三区在线 | 狠狠久 | 久久99成人 | 亚洲精品国产综合区久久久久久久 | 欧美久久久久久久久中文字幕 | 81精品国产乱码久久久久久 | 久久亚洲美女 | 日韩电影一区二区三区 | 国产精品一区二区久久久久 | 久久美女网 | 久久久久久av | 国产精品久久久久久久免费大片 | 国内精品99 | 青青草原精品99久久精品66 | 天天操天天干天天爽 | 国产精品久久久久久久久久免费看 | 青春草91| 综合国产 |