我是java的新手。 我想知道这个。 在java中创建.class文件需要什么? 我们只是将源代码传递给每台机器,以便每台机器可以根据操作系统和硬件进行编译吗?
答案 0 :(得分:1)
我认为这主要是出于效率原因。
来自维基百科http://en.wikipedia.org/wiki/Bytecode:
字节码,也称为p码(便携式码),是一种形式 设计用于软件高效执行的指令集 翻译。与人类可读的源代码不同,字节码是紧凑的 数字代码,常量和引用(通常是数字地址) 它编码事物的解析和语义分析的结果 类似于程序对象的类型,范围和嵌套深度。 他们 因此,比直接解释更好 源代码。
(我的重点)
正如其他人提到的源代码的弱obfuscation一样。
答案 1 :(得分:0)
编译的主要原因是用于托管java类并运行它们的虚拟机只能理解字节码 而且每次编译一个类,虚拟机理解的语言都很昂贵。这是将源代码编译成字节码的唯一原因。 但我们也可以使用一些将源代码直接编译成机器代码的编译器。但这是一个我不太了解的不同故事。