Java如何实现write once run anywhere的跨平台操作?

Source

c/c++文件源代码在不同平台上运行需要重新编译,甚至是重写代码,那么java是如何实现write once run anywhere的跨平台操作的呢?
在这里插入图片描述
文字解释:
c/c++是编译型语言,直接从源代码被编译成机器语言(该机器语言只能被当前操作系统理解,倘若从windows系统切换成linux系统,需要在新的操作系统上重新编译代码重新生成 .exe文件 进行执行),也就是说c/c++ 机器依赖操作系统

java是编译-解释型语言,先将源代码编译成字节码 .class文件(实现平台独立),class文件再通过虚拟机选择操作系统进行解释,倘若切换操作系统,则不需要重新编译源代码,只需要下载适合该系统的虚拟机解释class文件。所以java通过增加中间层的操作减少了对操作系统的依赖。