真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java代碼被執(zhí)行的過程 java代碼執(zhí)行編譯的命令是

簡述java語言的執(zhí)行過程

1、java編譯生成的字節(jié)碼,在所有操作系統(tǒng)都是一樣,故其有這樣的特點:

創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都網(wǎng)站設計、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元烏蘭做網(wǎng)站,已為上家服務,為烏蘭各地企業(yè)和個人服務,聯(lián)系電話:13518219792

write once, run anywhere.其意思:只需要一次編碼,就可以在任何環(huán)境下運行。

2、不同的操作系統(tǒng),其java 虛擬機是不一樣的。虛擬機將java字節(jié)代碼轉(zhuǎn)換對應操作系統(tǒng)的

相關指令,保證其正常運行。

3、java 系統(tǒng)支持所有的硬件的平臺,不存在你提及的問題,你可以放心使用。

4、解釋器在java虛擬機中,編譯器在JDK或JRE 中。

5、java虛擬機就是常說的java 運行環(huán)境,其縮寫是 JRE,安裝在操作系統(tǒng)下的一個目錄中,

這個目錄在安裝時可以由你自行指定,就像你安裝其它應用軟件一樣。JDK中包含了JRE,

還有開發(fā)環(huán)境,如編譯器,幫助文檔生成器,以及系統(tǒng)API的jar庫文件等。

求java代碼的詳細執(zhí)行過程?順帶說一下eclipse中怎么可以看到代碼的執(zhí)行步驟呢?謝謝

最基本的操作是:

1.首先在一個java文件中設斷點,然后debug as--open debug Dialog,然后在對話框中選類后-- Run

當程序走到斷點處就會轉(zhuǎn)到debug視圖下。

2.F5鍵與F6鍵均為單步調(diào)試,F(xiàn)5是step into,也就是進入本行代碼中執(zhí)行,F(xiàn)6是step over,

也就是執(zhí)行本行代碼,跳到下一行,

3.F7是跳出函數(shù)

4.F8是執(zhí)行到最后。

1.Step Into (also F5) 跳入

2.Step Over (also F6) 跳過

3.Step Return (also F7) 執(zhí)行完當前method,然后return跳出此method

4.step Filter 逐步過濾 一直執(zhí)行直到遇到未經(jīng)過濾的位置或斷點(設置Filter:window-preferences-java-Debug-step Filtering)

5.resume 重新開始執(zhí)行debug,一直運行直到遇到breakpoint

6.hit count 設置執(zhí)行次數(shù) 適合程序中的for循環(huán)(設置 breakpoint view-右鍵hit count)

7.inspect 檢查 運算。執(zhí)行一個表達式顯示執(zhí)行值

8.watch 實時地監(jiān)視變量的變化

9.我們常說的斷點(breakpoints)是指line breakpoints,除了line breakpoints,還有其他的斷點類型:field(watchpoint)breakpoint,method breakpoint,exception breakpoint.

10.field breakpoint 也叫watchpoint(監(jiān)視點) 當成員變量被讀取或修改時暫掛

11.添加method breakpoint 進入/離開此方法時暫掛(Run-method breakpoint)

12.添加Exception breakpoint 捕抓到Execption時暫掛(待續(xù)...)

斷點屬性:

1.hit count 執(zhí)行多少次數(shù)后暫掛 用于循環(huán)

2.enable condition 遇到符合你輸入條件(為ture\改變時)就暫掛

3.suspend thread 多線程時暫掛此線程

4.suspend VM 暫掛虛擬機

13.variables 視圖里的變量可以改變變量值,在variables 視圖選擇變量點擊右鍵--change value.一次來進行快速調(diào)試。

14.debug 過程中修改了某些code后--〉savebuild--resume--重新暫掛于斷點

java運行的五個步驟?

Java程序從源文件創(chuàng)建到程序運行要經(jīng)過兩大步驟:1、源文件由編譯器編譯成字節(jié)碼(ByteCode)

2、字節(jié)碼由java虛擬機解釋運行。因為java程序既要編譯同時也要經(jīng)過JVM的解釋運行,所以說Java被稱為半解釋語言( "semi-interpreted" language)。

下面通過以下這個java程序,來說明java程序從編譯到最后運行的整個流程。代碼如下:

//MainApp.java

public class MainApp {

public static void main(String[] args) {

Animal animal = new Animal("Puppy");

animal.printName();

}

}

//Animal.java

public class Animal {

public String name;

public Animal(String name) {

this.name = name;

}

public void printName() {

System.out.println("Animal ["+name+"]");

}

}

第一步(編譯): 創(chuàng)建完源文件之后,程序會先被編譯為.class文件。Java編譯一個類時,如果這個類所依賴的類還沒有被編譯,編譯器就會先編譯這個被依賴的類,然后引用,否則直接引用,這個有點象make。如果java編譯器在指定目錄下找不到該類所其依賴的類的.class文件或者.java源文件的話,編譯器話報“cant find symbol”的錯誤。

編譯后的字節(jié)碼文件格式主要分為兩部分:常量池和方法字節(jié)碼。常量池記錄的是代碼出現(xiàn)過的所有token(類名,成員變量名等等)以及符號引用(方法引用,成員變量引用等等);方法字節(jié)碼放的是類中各個方法的字節(jié)碼。下面是MainApp.class通過反匯編的結(jié)果,我們可以清楚看到.class文件的結(jié)構(gòu):

第二步(運行):java類運行的過程大概可分為兩個過程:1、類的加載 2、類的執(zhí)行。需要說明的是:JVM主要在程序第一次主動使用類的時候,才會去加載該類。也就是說,JVM并不是在一開始就把一個程序就所有的類都加載到內(nèi)存中,而是到不得不用的時候才把它加載進來,而且只加載一次。

下面是程序運行的詳細步驟:

在編譯好java程序得到MainApp.class文件后,在命令行上敲java AppMain。系統(tǒng)就會啟動一個jvm進程,jvm進程從classpath路徑中找到一個名為AppMain.class的二進制文件,將MainApp的類信息加載到運行時數(shù)據(jù)區(qū)的方法區(qū)內(nèi),這個過程叫做MainApp類的加載。

然后JVM找到AppMain的主函數(shù)入口,開始執(zhí)行main函數(shù)。

main函數(shù)的第一條命令是Animal animal = new Animal("Puppy");就是讓JVM創(chuàng)建一個Animal對象,但是這時候方法區(qū)中沒有Animal類的信息,所以JVM馬上加載Animal類,把Animal類的類型信息放到方法區(qū)中。

加載完Animal類之后,Java虛擬機做的第一件事情就是在堆區(qū)中為一個新的Animal實例分配內(nèi)存, 然后調(diào)用構(gòu)造函數(shù)初始化Animal實例,這個Animal實例持有著指向方法區(qū)的Animal類的類型信息(其中包含有方法表,java動態(tài)綁定的底層實現(xiàn))的引用。

當使用animal.printName()的時候,JVM根據(jù)animal引用找到Animal對象,然后根據(jù)Animal對象持有的引用定位到方法區(qū)中Animal類的類型信息的方法表,獲得printName()函數(shù)的字節(jié)碼的地址。

開始運行printName()函數(shù)。

特別說明:java類中所有public和protected的實例方法都采用動態(tài)綁定機制,所有私有方法、靜態(tài)方法、構(gòu)造器及初始化方法都是采用靜態(tài)綁定機制。而使用動態(tài)綁定機制的時候會用到方法表,靜態(tài)綁定時并不會用到。


新聞名稱:java代碼被執(zhí)行的過程 java代碼執(zhí)行編譯的命令是
網(wǎng)址分享:http://weahome.cn/article/ddiicsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部