当您可以传递源代码时,JVM的需求是什么?

时间:2014-12-13 07:11:08

标签: jvm

我是java的新手。 我想知道这个。 在java中创建.class文件需要什么? 我们只是将源代码传递给每台机器,以便每台机器可以根据操作系统和硬件进行编译吗?

2 个答案:

答案 0 :(得分:1)

我认为这主要是出于效率原因。

来自维基百科http://en.wikipedia.org/wiki/Bytecode

  

字节码,也称为p码(便携式码),是一种形式   设计用于软件高效执行的指令集   翻译。与人类可读的源代码不同,字节码是紧凑的   数字代码,常量和引用(通常是数字地址)   它编码事物的解析和语义分析的结果   类似于程序对象的类型,范围和嵌套深度。 他们   因此,比直接解释更好   源代码。

(我的重点)

正如其他人提到的源代码的弱obfuscation一样。

答案 1 :(得分:0)

编译的主要原因是用于托管java类并运行它们的虚拟机只能理解字节码 而且每次编译一个类,虚拟机理解的语言都很昂贵。这是将源代码编译成字节码的唯一原因。 但我们也可以使用一些将源代码直接编译成机器代码的编译器。但这是一个我不太了解的不同故事。