3个回答
展开全部
异:
1.C++ 和java相比,只有标准的容器和算法,它的标准里没有网络,GUI以及应用框架这些内容,因此需要第三方的库来支持。而java的标准库包含的内容很丰富,有GUI支持,网络支持,多线程支持,以及完整的应用框架。
2.C++中有指针可以直接操纵内存,这点是java做不到的,c++中的引用和java中的引用不同。C++中的引用是编译时的一种隔离措施,也就是说,C++程序运行时,并没有引用存在。而java中的引用在程序运行期间,执行栈中存储引用,而堆中存储引用所执行的对象。因此java中的引用更像C++中的指向动态内存的指针。java中有垃圾回收机制,C++需要显式的释放。但是C++本省完备的机制和强大的功能可以让程序员编写出自动释放动态内存的程序。
3.C++比java强大,灵活,快速。C++的执行需要借助C运行时,而java执行需要借助JVM,而jvm要借助C运行时。
4.c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
5.Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7.c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
8.“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
9.在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
10.JAVA中的异常机制用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
}
其中exceptionType表示异常类型。而C++则没有如此方便的机制。
同:C++和JAVA都是C之后的产物,都是在C的思想中升华成的两种不同的编程语言,也就是说他们在基础部分是由很多相同点的,在这就不一一解析了,只有体会到才能感受到其中的奥妙!
1.C++ 和java相比,只有标准的容器和算法,它的标准里没有网络,GUI以及应用框架这些内容,因此需要第三方的库来支持。而java的标准库包含的内容很丰富,有GUI支持,网络支持,多线程支持,以及完整的应用框架。
2.C++中有指针可以直接操纵内存,这点是java做不到的,c++中的引用和java中的引用不同。C++中的引用是编译时的一种隔离措施,也就是说,C++程序运行时,并没有引用存在。而java中的引用在程序运行期间,执行栈中存储引用,而堆中存储引用所执行的对象。因此java中的引用更像C++中的指向动态内存的指针。java中有垃圾回收机制,C++需要显式的释放。但是C++本省完备的机制和强大的功能可以让程序员编写出自动释放动态内存的程序。
3.C++比java强大,灵活,快速。C++的执行需要借助C运行时,而java执行需要借助JVM,而jvm要借助C运行时。
4.c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。
5.Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。
6.Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。
7.c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:
(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;
(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;
(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;
(4)可对字符串用“十”进行连接操作。
8.“可怕”的goto语句是c和c++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,不易理解,goto语句子要用于无条件转移子程序和多结构分支技术。鉴于以广理由,Java不提供goto语句,它虽然指定goto作为关键字,但不支持它的使用,使程序简洁易读。
9.在c和c十十中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。Java不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
10.JAVA中的异常机制用于捕获例外事件,增强系统容错能力
try{//可能产生例外的代码
}catch(exceptionType name){
//处理
}
其中exceptionType表示异常类型。而C++则没有如此方便的机制。
同:C++和JAVA都是C之后的产物,都是在C的思想中升华成的两种不同的编程语言,也就是说他们在基础部分是由很多相同点的,在这就不一一解析了,只有体会到才能感受到其中的奥妙!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询