发布网友 发布时间:2022-04-23 02:01
共4个回答
热心网友 时间:2023-10-10 23:35
是的。所谓的“字节码”就是中间代码,它可以很快地被翻译成机器码,但是中间代码本身不包含与机器或操作系统相关的信息,这些信息只有虚拟机清楚。所以中间代码只是说“我要做什么”,由虚拟机根据机器和操作系统翻译成“怎么做”然后去执行。因此在linux下编译的java代码也可以直接运行在Windows或者其它装有虚拟机的系统下,反之亦然。而C或C++直接编译成与机器和操作系统相关的代码,所以C语言编译的程序没有跨平台性,就算没有使用到操作系统相关的API,在不同的系统下也必须重新编译才能运行。热心网友 时间:2023-10-10 23:36
对。c语言编译后是可执行的机器码,由cpu直接执行;而java编译后是字节码,不是cpu可以直接执行的机器码,需要由java虚拟机解释成机器码来执行热心网友 时间:2023-10-10 23:36
理解正确 编译成机器码热心网友 时间:2023-10-10 23:37
严格地说编译后的只是目标代码,其中还包含了一些符号(即连接库或其它目标代码的接口),需要连接后才是可执行程序,所以一般都是现compile,然后link。