螞蟻幣是什么網(wǎng)站建設(shè)網(wǎng)站推廣應(yīng)該怎么做?
一、Java Virtual Machine (JVM)概述
Java Virtual Machine 虛擬機(jī) (JVM) 是一種抽象的計算機(jī)。JVM本身也是一個程序,但是對于編寫在其中執(zhí)行的程序來說,它看起來像一臺機(jī)器。對于特定的操作系統(tǒng),每個 JVM 實現(xiàn)都將 Java 編程指令轉(zhuǎn)換為在本地操作系統(tǒng)上運行的指令和命令。這樣,Java程序就實現(xiàn)了平臺獨立性。第一個JVM的實現(xiàn)就是Hotspot
二、Hotspot Architecture
The HotSpot JVM的邏輯結(jié)構(gòu)圖如下:
Hotspot虛機(jī)機(jī)主要的組件包括the classloader(類加載器), the runtime data areas(運行時數(shù)據(jù)區(qū)), and the execution(執(zhí)行引擎)
1、 the runtime data areas(運行時數(shù)據(jù)區(qū))
1、1 The pc Register (program counter registers )程序計數(shù)寄存器
JVM可以支持同時多線程運行,每一個JVM線程都會有它自己的pc Register ,pc Register 中存儲的其實就是當(dāng)前被執(zhí)行的代碼的地址。如果一個方法(method)不是native方法,那么pc Register 中存儲的其實就是當(dāng)前被執(zhí)行的代碼的地址,如果一個方法(method)是native方法,那么pc Register 是無值的
1、2 Heap(堆)
在JVM中,有一個區(qū)域被叫做Heap(堆),該區(qū)域被所有的JVM線程所共有,所有的java類的實例對象( class instances)和數(shù)組(arrays)的內(nèi)存申請都會被分配(allocated)在這個區(qū)域中。
1、3 Java Virtual Machine Stacks(棧)
每一個JVM線程都會有一個私有的棧(private Java Virtual Machine stack),與該線程一同被創(chuàng)建出來。
1、4 Method Area (方法區(qū))
在JVM中,有一個區(qū)域被叫做Method Area(方法區(qū)),該區(qū)域被所有的JVM線程所共有。