×

深入java虛擬機(jī)

  • 作者:新網(wǎng)
  • 來(lái)源:新網(wǎng)
  • 瀏覽:100
  • 2018-05-07 11:23:45

java虛擬機(jī)實(shí)例的生命周期:java虛擬機(jī)的職責(zé)是負(fù)責(zé)運(yùn)行一個(gè)java程序。當(dāng)啟動(dòng)一個(gè)java虛擬機(jī)時(shí),一個(gè)虛擬機(jī)實(shí)例便誕生了。當(dāng)該程序關(guān)閉退出時(shí),這個(gè)虛擬機(jī)實(shí)例也隨之退出。

   java虛擬機(jī)實(shí)例的生命周期:java虛擬機(jī)的職責(zé)是負(fù)責(zé)運(yùn)行一個(gè)java程序。當(dāng)啟動(dòng)一個(gè)java虛擬機(jī)時(shí),一個(gè)虛擬機(jī)實(shí)例便誕生了。當(dāng)該程序關(guān)閉退出時(shí),這個(gè)虛擬機(jī)實(shí)例也隨之退出。

d377dbad54174c0b88b034cc5a9d0427.png

<div>  如果一臺(tái)主機(jī)上同時(shí)運(yùn)行3個(gè)java程序,就會(huì)產(chǎn)生3個(gè)java虛擬機(jī)實(shí)例。
  java虛擬機(jī)通過調(diào)用某個(gè)初始類的main方法來(lái)運(yùn)行一個(gè)java程序。
  Java代碼 
  public class HelloWorld {
  public static void main(String[] args) {
  System.out.println("Hello World!");
  }
  }
  java虛擬機(jī)規(guī)范中,一個(gè)虛擬機(jī)的行為是分別按照子系統(tǒng),內(nèi)存區(qū),數(shù)據(jù)類型以及指令這幾部份組成的。
  當(dāng)java虛擬機(jī)運(yùn)行一個(gè)程序時(shí),它需要內(nèi)存來(lái)存儲(chǔ)許多東西,例如,字節(jié)碼,從已裝載的class文件中得到的其他信息,程序創(chuàng)建的對(duì)象,傳遞給方法的參數(shù),返回值,局部變量,以及運(yùn)行的中間結(jié)果。i每個(gè)java虛擬機(jī)都有一個(gè)方法區(qū)和一個(gè)堆,它們是由所有線程共享的。
  當(dāng)每個(gè)新線程被創(chuàng)建時(shí),它都會(huì)得到自己的pc寄存器以及一個(gè)java棧。如果線程正在執(zhí)行的是一個(gè)java方法,那么寄存器大的值總是指向下下一條將被執(zhí)行的指令,而它的java??偸谴鎯?chǔ)該線程中的java方法調(diào)用的狀態(tài)--包括它的局部變量,被調(diào)用時(shí)傳遞過來(lái)的參數(shù),它的返回值,以及運(yùn)算的中間結(jié)果。
  java棧是由許多棧幀組成,一個(gè)棧幀包括一個(gè)java調(diào)用的狀態(tài)。當(dāng)線程調(diào)用一個(gè)java方法時(shí),虛擬機(jī)壓入一個(gè)新的棧幀到該線程的java棧中;當(dāng)該方法返回時(shí),這個(gè)棧幀被從java棧中彈出并拋棄。
  java虛擬機(jī)沒有寄存器,其指令使用java棧來(lái)存儲(chǔ)中間數(shù)據(jù)。這樣設(shè)計(jì)是為了使得java虛擬機(jī)的指令集盡量緊湊。
  數(shù)據(jù)類型
  java虛擬機(jī)的數(shù)據(jù)類型包括
  基本類型:數(shù)值類型,boolean,returnAddress
  引用類型:類類型,接口類型,數(shù)組類型
  java虛擬機(jī)為每個(gè)載入的類型存儲(chǔ)以下信息,
        該類型的基本信息、該類型的常量池、字段類型、方法信息?!〕顺A恐獾乃蓄?靜態(tài))變量, 一個(gè)到類classloader的引用,一個(gè)到class類的引用。
        以上就是小編今天介紹的全部?jī)?nèi)容。

免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請(qǐng)發(fā)送郵件至:operations@xinnet.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

免費(fèi)咨詢獲取折扣

Loading