2012-07-10 113 views
1

我想知道執行java程序時發生的分步內部過程。執行Java程序後執行的內部過程

示例如果我們在命令提示符中提供java test
什麼過程被調用?
JVM如何實例化?直到它打印輸出..

+0

看一看的[JVM規範(http://docs.oracle.com/javase/specs/jvms/ se7/html/index.html)... – zeller 2012-07-10 13:35:24

+3

這是一個非常*很大的主題。你特別想知道什麼? – 2012-07-10 13:37:20

+0

只是一個流..如何jvm得到實例化..然後下一個被稱爲..像這樣的東西.. – Jeevi 2012-07-10 13:38:59

回答

-2

我不知道,但不過,我已經明白這個概念,我將解釋你一樣的....

最初,第一個,當你輸入命令的java abc(文件名爲abc.java)來運行程序....程序將搜索Java運行時環境,因爲您輸入了命令(JAVA in cmd)....它表示您在環境變量...

然後JVM被激活........ JVM將給類加載器一個調用.......然後類加載器將去操作系統採取程序執行許可.....一旦OS允許.....類加載器將檢查文件名和程序名........(如你所知,類名和文件名應該是相同的)........如果一切順利........程序在內存中加載..... :)

乾杯:)

桑卡Salunkhe

+2

歡迎來到SO。你能否改善你的格式?儘管內容看起來不錯,但所有的時期都讓這看起來有些雜亂。也許你可以使用一個子彈列表或其他東西(你可以編輯你點擊後面的「編輯」)。 – Kjartan 2013-01-14 15:48:45

+1

連續使用超過三個句號的英語句子。你使用八次,多次。您還缺乏單詞之間的空格,並使用不必要的大寫字母(它是「Java」,而不是「JAVA」)。你的問題也缺乏清晰度。 – Jules 2013-01-14 15:58:45

2

Java程序執行如下5個專業步驟:

編輯 編譯 負載 驗證 和執行

  1. 編輯 - 在這裏程序員使用一個簡單的編輯器或記事本應用來編寫Java程序並在最後給它一個.java擴展

  2. 編譯 - 在這一步中,程序員給出了javac c ommand和.java文件被轉換爲字節碼,這是Java虛擬機可以理解的語言(這是使Java平臺無關的語言)。任何編譯時錯誤在此步驟被提出

  3. 加載 - 然後程序被加載到內存中。這是由類加載器完成的,該加載器接收包含字節碼的.class文件並將其存儲在內存中。這個。類文件可以從硬盤或從網絡以及加載

  4. 驗證 - 字節碼校驗檢查加載的字節碼是有效的,不違反Java的安全限制

  5. 執行 - 的JIT(精益生產-in-時間)編譯器編譯程序一個字節的時間和運行程序

+0

你剛剛複製粘貼來自quora的答案,非常糟糕。 https://www.quora.com/What-are-the-different-steps-involved-in-execution-of-a-Java-program – javabot 2016-08-31 05:11:11

0

1)JVM執行程序的字節碼。
2)JVM通常使用解釋和所謂的即時(JIT)編譯的組合來執行字節碼
3)分析解釋的字節碼
4)即時(JIT)編譯器(如Oracle的Java HotSpot編譯器)將字節碼轉換爲底層計算機的機器語言。

2

Java代碼的執行在內部將在下面的步驟: -

Execution Command -->java Test 
    1.Start JVM 
    2.Create and Start Main Thread 
    3.Look at Test.class File-->Main Thread is responsible for checking if not found Runtime Exception will occur saying Exception in Thread Main 
    4.Load Test.class file 
    5.Execute Main method 
    6.Unload Test.class 
    7.Terminate Main Thread 
    8.Shut down JVM