微软为何选择C++

2024-12-03 03:20:57
推荐回答(5个)
回答1:

java运行速度比C++慢,总结下有以下几点:

1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作.而C++编译的时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍.即使采用just-in-time compiling (读取类文件字节后,编译成本地机器码)技术,速度也要比C++慢好多.

2)java程序有要从网络上加载类字节,然后执行,这也是导致java运行速度慢的原因.

3)在程序运行过程中,java虚拟机要检测数组是否越界,在C++中则不检测.

4)java中所有的对象都创建在堆中,没有对象被创建在stack中,而C++有的对象和变量是创建在stack中的

5) java在运行过程中检测对象的引用是否为空,如果引用指向都空指针,且执行某个方法时会抛出空指针异常

6)java运行时对类型检测,如果类型不正确会抛出ClassCastException异常.

7)java的垃圾回收机制较C++由程序员管理内存效率更低.

8) java中的原始数据类型在每个操作系统平台长度都是相同,而C++这些数据类型长度是随操作系统的不同而不同,所以java在不同操作系统上执行时有个转化过程.

9)在java中String 是UNICODE.当java要操作一个 ASCII string 时,比C++效率上相对要低一些.

10)java中采用的是动态链接

回答2:

java并不是想象的那么稳定。选用c++
可以直接操作内存,还是很有优势的,虽说这个不小心会造成泄漏等一系列的问题。
对开发最后一层应用程序的人可以选择很多编程语言,但是开发底层还是c和c++。
其实微软也做过类似于java的东西,微软有java 的替代品。

商业利益和技术层面让微软选择了c++

回答3:

直接使用内存是否安全是相对的。
Java如果不严格按照安全规范编写,也同样会有安全漏洞。
而C++严格按照安全规范编写,有会避免安全漏洞。
并且内存方面的安全漏洞只是软件漏洞的一部分。为了这个换语言是不值得的。

并且C++和Java不具有兼容性。要换代码必须把所有的代码都换成Java。
大型软件公司开发的开发很多会用很长时间。
例如一软件有三个源代码A、B、C组成,新版本软件需要进行适当修改,而恰好只修改A,而B、C不需要修改可以直接用在新版本。
如果要改变语言,那就意味着A、B、C都要重写。一些中小型软件就有上万个源代码文件了。这修改工作可不是小事。

一、不值得
二、没有必要。

回答4:

微软即使使用 C# 也不会使用 Java,他们本来就是竞争对手。
你都说了,Java是运行在虚拟机里的 不能直接访问实际内存,那操作系统之类的还是用 C 更好一些。
其次,优点本身就是一种缺点,没有两全其美的事,一方面的好处总是以另一方面的缺点为代价。

回答5:

版本问题,以前微软出了一个VJ++,听说也是可以编译成本地代码的,后来和sum打官私整了好几年呢。不过后来微软赔了一笔钱和解了。