当前位置:首页 > 虚拟机 > 正文

光用java虚拟机不行吗


一、为什么JAVA运行要用到JAVA虚拟机,而C语言不用呢??让我们明确一点:编译一次并在任何地方运行Java。你听过这句话吗?事实上,Java需要虚拟机,因为Java虚拟机提供了在任何地方运行Java的能力。从另一个角度来看,Java程序首先被编译成*.class文件,然后虚拟机将*.class文件编译成可以在本地机器上执行的机器语言。这一步是由Java虚拟机完成的。c将C一步编译成本地机器语言。因此,C一般比Java运行得快,因为少了一次编译。当然,C不允许您编译一次并在任何地方运行。
二、JAVA虚拟机的技术难度比操作系统难吗?两者都有各自的挑战,我个人认为两者都很困难。否则,Sun可以创建与微软相同的操作系统,而微软也可以创建可以与Sun竞争的虚拟机。事实上,微软后来也创建了类似的东西。,微软创建了VJ++来吸引Java程序员使用它的平台。后来就有了C#平台。然而,它并不像Java那样专业。孙杨可没那么容易获胜。那么您不认为Java虚拟机中还剩下一些技术实质吗?哈哈
现在我们来分析一下技术部分。
1.操作系统面临的技术包括内存管理、进程调度、设备管理等。
2.与虚拟机相比,任何用Java创建的应用程序首先要经过虚拟机,然后从虚拟机传输到操作系统。从这个意义上来说,虚拟机就相当于一个大的软件,可以管理其他软件。然而,虚拟机下还运行着N个大小不一的Java程序,也必须对这些程序进行内存管理和进程调度。其中包括每个程序的内存安全机制、垃圾收集机制和异常捕获机制。从这个意义上来说,虚拟机就像一个操作系统。
对原贴补充:
C语言程序不能在一个平台上构建,代码必须编译;之后就可以在另一个平台上运行了!最重要的原因是字节长度问题。例如,一个整数在32位系统上占用4个字节,但在64位系统上占用8个字节。此时程序编译失败。
一个字节占用8位,所以32位就是4个字节,所以32位系统中每个工作单元是4个字节,而64位系统是8个字节,比32位快很多位系统。原因。
所以~~~~~~~很多可以在WindowsXP上运行的游戏和软件在WindowsVista上运行时就会崩溃。或者你根本不会安装它。
虚拟机在过去两年内开源的可能性很小。您可以使用Java编程语言。这段Java代码是用来创建软件的,但是软件必须运行在虚拟机上,而虚拟机并不是开源的。也许几年后Java就会有一个虚拟机的开源项目,但现在还没有。
同时,Sun也开展了一些开源项目,例如它收购的Hibernater和mySql。
我不知道Bea是不是Sun创建的,但是查了一下,我觉得Bea和sun的关系还是很密切的。即使不是sun做的,技术也是来自sun的。
在嵌入式开发的世界里,已经有很多公司在开发虚拟机了,但这只是sun的冰山一角。这些虚拟机只能在手机、电视机顶盒等上运行Kjava的cdc和cldc程序。
与Sun的差距还是相当大的,但几年后可能会诞生一个新的Sun公司。哈哈,我们等等吧。