哪些特性使得“一次编译,到处运行”成为可能
1个回答
展开全部
虚拟机和字节码
标准API库。
首先程序不能处处运行的原因在两处,一个是CPU,一个是系统。CPU因为机器码不同的缘故,导致无法通用,解决办法,自己制作虚拟机,虚拟机运行字节码的方式,字节码可以认为是虚拟机的机器码(.net的虚拟机叫运行时其实道理一样)。。。如果编译成字节码,那么就能在虚拟机上运行,不管他是什么CPU,只要有运行字节码的虚拟机就OK。。。。
系统问题,系统不同系统内核和API不同,解决办法,标准API库,不同的系统的内核对象其实大致原理和功能相似只是实现不同,将API标准化为比如java API等等,问题被解决。。
但“一次编译,到处运行”只是个理想,几乎从来没有真正这么用过,。最主要还是API标准化几乎让这种事成为不可能。。。最简单的比如用手机打电话的功能,移植到PC上,PC根本没有这个功能,当然这是个极端的例子,到什么地方做什么事,统一根本无意义,只会带来兼容性麻烦。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询