荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: gybeango (gybe), 信区: Java
标  题:  C++和Java,C#的关系及优点
发信站: 荔园晨风BBS站 (Thu Mar 27 16:41:45 2003), 站内信件


★★ 现在出现了2种新的计算机编程语言,Sun Miscrosystem 的Jav和
Microsoft 的C#,两者和C++之间可能存在一些容易混淆的地方,在这里对
他们关系做一简单的说明。

C++是Java和C#的始祖,尽管他们两添加,删除和修改了许多功能,但总的
来说这三种语言几乎完全相同。此外,C++使用的对象模式也与另外两者非常
相似,而三种语言的整体风格也非常相似。如果掌握了C++,那么很快可以
掌握Java,C#,反之一样。这也是为什么Java和C#要共享C++的语法和对象模式
的原因之一:这有利于让大量丰富的C++经验的程序员转而使用这两种语言


 C++,Java,C#的主要区别在于三者运用的计算环境的类型不同。创建C++是为
特定类型的CPU和操作系统编写高性能的程序。例如。你想编写一个程序
它的运行环境是Windows操作系统,采用Intel的处理器,C++的最好的选择
Java和C#的开发是为了满足Intenet的联机环境下特殊的编程需求(C#的
开发还有简化创建软件项目的目的)。Internet连接着许多不同类型的CPU
和操作系统。因此,创建跨平台,可移植程序的能力就成为压倒一切的要求
第一种满足这种需求的语言是Java。使用它可以编写出运行在不同环境中
的程序。因此,它可以在Internet上自由传递。然而,为这种可移植性付出
的代价是效率,Java程序执行速度比C++慢许多。C#同样如此。归根到底,如果
你想创建一个高性能软件的话,使用C++比较好。如果你需要创建一个可移植性
高的软件的话,那么就用Java和C#.


请你记住一点是,C++,Java,C#是为解决不同类型的问题而设计,问题不在于
那种语言更好。而在于那种语言更适合目前的项目。



★★★ Java,C#是如何创建跨平台,可移植程序的,C++为何不具有这种能力?
Java,C#可以创建跨平台,可移植程序,而C++不能,这是由于编译器生成的对象
代码类型不同造成的。在C++环境中,编译器输出的是机器代码,可以由CPU直接
执行,因此,它受制于特点的CPU和操作系统。如果你想在不同的系统上运行C++
程序的话,就需要将程序再次编译,使其成为针对该环境的机器代码。要想让
C++
能运行在不同环境中,就需要该程序的多个不同的可执行版本。
Java和C#的跨平台,可移植程序是通过将程序编译成伪代码,即中间语言来实现的

在Java环境中,这种中间语言称为字节码(bytecode)。C#中称为微软中间语言
(Microsoft Internediate Language MSIL)。在这两种环境当中,伪代码都是
由运行时系统执行的。对于Java,这种运行时系统称为Java虚拟机(Java
Virtual Machine
JVM).C#中称为公共语言运行时(Common Language Runtime,CLR)。因此,Java程

可以运行在任何使用JVM的环境中,而C#程序可以运行在任何实现了CLR的环境中。


★ 因为Java和C#运行时系统介于程序和CPU之间,所以会产生一定的系统开销,
而C++
程序的执行则无须这些开销。这就是为什么C++ 程序通常要比使用Java,C#编写的
程序
执行得快的原因。

--

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.1.61]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店