黑马程序员技术交流社区

标题: 关于“一次编译,到处运行” [打印本页]

作者: xieshuhua    时间: 2012-5-14 08:17
标题: 关于“一次编译,到处运行”
我们都知道Java有这个特性,java通过程序-虚拟机-操作系统运行。
我想问的问题是:如果C语言需要一定的虚拟机支持,C是不是也能先新建一个虚拟机环境,然后再通过虚拟机与操作系统建立联系,如果可以的话,为什么没有这么做?
还有就是C的ISO体系和Java的开源(要求数以万计的java使用公司必须兼容)有什么本质的区别?
作者: 于潇    时间: 2012-5-14 08:52
这个问题,不是我们必要研究的东西……
作者: 赵志勇    时间: 2012-5-14 08:59
注意操作系统 是c做出来的,兼容性可想而知。
作者: 王晓龙    时间: 2012-5-14 09:30
window系统不是用c语言编写的 底层自带虚拟机  别的系统要用c语言程序 我感觉得有c语言虚拟机 单是window系统可能没有要不怎么能有java那 我是这么认为的
作者: xieshuhua    时间: 2012-5-14 10:43
这和以后我们对于Java的应用范围很有帮助,知道了这个,你就能先感知到学Java的大致能干哪一块的内容和工作,Java和其他语言是如何交互的。
作者: ‫李燃    时间: 2012-5-14 20:19
我也很想知道。。这原理上次老师提问回答不出来

作者: 古银平    时间: 2012-5-14 20:42
windows有它自带的虚拟机,用来将C/C++的代码编译成字节码,但它的虚拟机是在windows系统中的,也只能在windows下才能运行
作者: wangrenjie    时间: 2012-5-14 21:56
c语言面向过程的,他本是只提供了基础的实现,和一个标准库,提供了通用性的功能,特殊的功能有不同的实现。
java是在c语言的基础上实现的,其实很多底层方法直接调用了c
记得有一个关键字native什么的,是java里面直接调用c底层函数的。
java提供了不同的平台的实现,java的虚拟机本身不是夸平台的
只是说软件夸平台而已。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2