2013-09-01 72 views
-3

Java .class文件包含java字節碼。在運行時,這個.class文件被加載到JVM中。然後JVM執行字節碼。我想知道這個.exe文件包含了什麼(我正在使用Windows)?是否所有變量都在.exe創建時獲取內存或者.exe文件被加載到RAM上?.EXE文件包含的內容

+0

哪個.exe文件? JVM? –

回答

1

EXE文件與字節碼非常不同。他們有代碼和一個小的預先分配的內存部分,可以移動其變量所在的位置。任何額外的內存在運行時分配。類文件具有在EXE的外部地址空間中運行的字節碼,並且每個指令都由EXE的地址空間中的本機代碼讀取和分析。

+0

當.class文件被加載到JVM中時,靜態變量在類加載時獲取內存。所以這意味着在由JVM創建.exe之前,static已經獲得了內存? – user2594479

+0

@ user2594479 JVM不創建任何exe文件。 JVM *是* EXE。 – hexafraction

2

EXE或二進制文件包含在程序執行時加載到RAM中的機器指令。之後,CPU開始順序執行這些指令。最後,您的計算機將完成EXE打算執行的操作。