java運(yùn)行機(jī)制

1、安裝jdk1.6及以上

http://blog.csdn.net/hjx5200/article/details/21941425

http://blog.csdn.net/nomousewch/article/details/7885388

java運(yùn)行機(jī)制:

1、編譯:jdk的javac進(jìn)行編譯 ?javac ?java文件名路徑 ?eg: javac D:\HelloWorld.java

編譯成字節(jié)碼

2、運(yùn)行:包括類加載和類執(zhí)行 java 文件名 ?eg: java D:\HelloWorld

根據(jù)Path中所配置的jdk路徑找的其bin目錄下的java.exe程序,然后再初始化一些java參數(shù)(比如CLASSPATH、虛擬機(jī)參數(shù)等)。

java.exe程序分配內(nèi)存并啟動(dòng)jre/bin目錄下client目錄或者server目錄(取決于第一步中的虛擬機(jī)參數(shù))下的jvm.dll,java虛擬機(jī)開始啟動(dòng),開始類加載、運(yùn)行。

類加載:加載、連接、初始化

加載:首先加載java虛擬機(jī)默認(rèn)加載類(java API:主要分布在jre/lib下,第一個(gè)被載入的java類是Object類,有時(shí)還會(huì)加 ? ? ? ?載jre/lib/ext下的jar包--可通過以下命令查看java API加載類:java?-verbose:class

然后開始加載自定義類(包括運(yùn)行類和第三方j(luò)ar包類)通過環(huán)境配置找到字節(jié)碼文件,將字節(jié)碼加載 ? ? ? ?到j(luò)vm內(nèi)存區(qū):

主類信息保存在運(yùn)行時(shí)數(shù)據(jù)區(qū)的方法區(qū)(包括class的版本號(hào),常量池,方法的字節(jié)碼)

靜態(tài)變量、對(duì)象的引用(實(shí)例化后的對(duì)象)保存在stack棧中,

非靜態(tài)變量、方法、對(duì)象放入堆中。

連接:

驗(yàn)證字節(jié)碼是否符合java規(guī)范,數(shù)據(jù)類型是否有效,繼承和實(shí)現(xiàn)是否合乎標(biāo)準(zhǔn)。在這個(gè)階段還為類的靜態(tài)變量分配空間,并將其設(shè)置成JVM的默認(rèn)值。對(duì)于非靜態(tài)變量則不會(huì)賦值。

在jvm中各類型的初始值如下:

int,byte,char,long,float,double 默認(rèn)初始值為0

boolean 為false(在jvm內(nèi)部用int表示boolean,因此初始值為0)

reference類型為null

final static基本類型或者String類型,則直接采用常量值(這實(shí)際上是在編譯階段就已經(jīng)處理好了)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,765評(píng)論 18 399
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,687評(píng)論 0 11
  • JVM體系結(jié)構(gòu) JVM是一種解釋執(zhí)行class文件的規(guī)范技術(shù)。 我翻譯的中文圖: 類裝載器子系統(tǒng) 在JVM中負(fù)責(zé)裝...
    zhazhaxin閱讀 11,804評(píng)論 7 69
  • 《深入理解Java虛擬機(jī)》筆記_第一遍 先取看完這本書(JVM)后必須掌握的部分。 第一部分 走近 Java 從傳...
    xiaogmail閱讀 5,175評(píng)論 1 34
  • 曾經(jīng),路上,遇見過。 那時(shí),青澀,忘記了怎么相知,忘記了怎樣相遇。也許,冥冥之中,有太多注定! 記得,青春,萌發(fā)的...
    淡淡_99f7閱讀 200評(píng)論 0 0