给我的感觉是,java很容以上手编程,语法更符合人的思维,清晰明了;而C语
法比较复杂,学了很长时间还不能开发出像样的程序。
下面是它们的一些主要区别:
1.指针
Java无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言
中指针操作失误,如指针悬空所造成的系统崩溃。比new操作返回一对象的引用,
类似于c++中的引用;在c++中,new返回一个对象的指针。在Java中无指针,不会
遇到下面这样的
语句:
Mywork—>Mywork();
没有指针的程序无法访问不属于它的内存,消除了在c++
中—些常见的错误,这有利于Java程序的安全。指针的灵活性远远小于
它带来的麻烦。
2.多重继承
c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重
继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容
易。Java不支持多重继承,但允许一个类继承多个接口(界面),实现了c++多重继
承的功能,又避免了c++的许多缺陷。
3.数据类型及类
Java使用了个能和整数转换的布尔类型(bo01ean),它仪有二个值:true或fal
se。Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本
数据类型(如控型初浮点型)之外,其余的都作为类对象,包括中和数组。对象将数
据(Proper山s)和方法(meth。d)结合起来,把它们封装在类中,这样每个对象都可
实现自己的特点和行为。而c++允许将函数和变量定义为全局的。
此外,Java中取消了c/c++中的结构和联合,使编译程序更简捷。
4.自动内存管理
Java程序中所有的对象都是用new操作符建立在堆栈上,这个操作符类似于c++
的new操作符。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十
中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被
再用到时,无用内存回收器将给它加上标签以示删除。无用内存回收器在后台运行
,利用空闲时间工作。
5.操作符重载
Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然
类大体上pJ以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言
不支持操作符重载是为了保持Java语言尽可能简单。
本文对比了Java与C++的特点,介绍了Java通过自动内存管理和无指针设计提高安全性,使用单一继承简化多重继承的复杂性,并通过内置布尔类型增强数据处理能力。同时,Java提供了自动垃圾回收机制来简化内存管理。

被折叠的 条评论
为什么被折叠?



