2013-09-01 53 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打算执行的操作。