有关java与c++之间比较

设计目标上:

C++和Java语言之间的不同可以追溯到它们各自的传统,它们有着不同的设计目标。

C++ 被设计成主要用在系统性应用程式设计上,对C语言进行了扩展。对于C语言这个为执行效率设计的程序式程式设计语言, C++ 特别加上了以下这些特性的支持:静态类型的面向对象程序设计的支持、异常处理、RAII以及泛型。另外它还加上了一个包含泛型容器和算法的C++函式库。

Java 最开始是被设计用来支持网络计算。它依赖一个虚拟机在来保证安全和可移植性。Java 包含一个可扩展的库用以提供一个完整的的下层平台的抽象。Java 是一种静态面向对象语言,它使用的语法类似C++,但与之不兼容。为了使更多的人使用更易用的语言,它进行了全新的设计。

C++ 是一门强大的语言,设计用在系统程式设计方面。Java语言是设计成简单易用易学习,并有一个强大的跨平台的库。Java函式库对一个函式库来说相当的大。但Java并不会提供所在平台的所有特性和接口。C++函式库简单健壮,提供容器关联数组的支持。

语言特性上:

java程序中的每个变量要么是基本数据类型(boolean, char, byte, short, int, long, float, double),要么是对对象的引用

C++有许多种基本类型,额外还有struct, union, enum, 数组和指针,C++指针可以指向对象,也可以不指向对象

Java没有枚举、联合类型,因为Java认为没有必要。将可有可无的语言元素去掉是Java对C/C++做出的一大改变,因此,普遍认为Java较C++更轻便,更精简

Java采用Unicode字符集,C++通常用ASCII字符集。但ASCII是Unicode的子集,对于习惯于ASCII的程序员感觉不到区别

Java中的boolean类型不能转换成其他类型,反之亦然。C++最近引进了bool类型,代表布尔类型,整型也作为逻辑判断

模板是一种“泛型编程思想”,它有别于“面向对象编程思想”。C++在很大程度上已经支持了这种新型编程方法,特别是STL的出现
Java目前仍未支持泛型编程,不过据说Sun公司有在Java中引入模板的计划

C++支持“运算符的重载”,这是它的一个很重要的多态特征,是数据抽象和泛型编程的利器。它允许直接对对象进行四则运算,正像基本数据类型那样
Java不支持这种多态机制,也是为降低复杂性

 

posted on 2013-03-04 13:17  Nephalem  阅读(198)  评论(0编辑  收藏  举报

导航