windows编译器—————>只在window下可执行的文件
.c文件—————>linux编译器 —————>只在Linux下可执行的文件
macos编译器—————>只在macOS下可执行的文件
只在window下可执行的文件
.java文件——编译器———>.class(字节码文件) ——JVM———>只在Linux下可执行的文件
只在macOS下可执行的文件
区别:
(1)java的字节码文件是与品平台无关的,拿着这个字节码文件就可以去不同的平台去运行
(2)C语言不同平台有不同的编译器,编译器与平台是相关的,编译后的可执行文件也是跟平台 相关的
实际上说的跨平台指的是:编译后的文件是否跨平台。所以C语言不是跨平台的。
C语言的效率要比java的执行效率高,是因为他产生的可执行文件可以直接在平台上去运行。