java跨平台,跨的是谁?(百度知道)

1、java跨平台是同一java源码被编译后得到的字节码文件可以在不同的操作系统上运行

例如:一个java程序,编译得到class后可以在windows,linux,mac等等的操作系统上运行

Java先编译后解释。

同一个.class文件在不同的虚拟机会得到不同的机器指令

(Windows和Linux的机器指令不同)但是最终执行的结果却是相同的

注意:Windows和Linux的机器指令不同。大概因为操作系统需要硬件支持,所以属于自己的指令(区别于cpu的指令)。

2、以前它有一个口号:一次编译、到处运行。

就是说代码编译好之后得到一个字节码而不是传统的机器码的程序,当我们运行在不同的操作系统上的时候,每个操作系统都有相应的 Java 虚拟机来解释这些字节码,因为跟操作系统平台相关的部分由 Java 虚拟机来负责,这就是所谓的跨平台。对比一下传统的程序,一个 Windows 上的 exe 没办法运行在 Linux 上,反过来也是一样。

另外,Java 使用的包名和类路径也是为跨平台提供支持的,包名的层次结构就是与目标树和jar内的目录结构对应的,因此程序只看到一个逻辑的层次结构,真实运行时我们则是在命令行给出 -classpath 参数,这时的 classpath 参数则是与操作系统平台相关的,但要知道这与代码本身没有关系,代码依然是跨平台的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容