C++与Java的区别
来源:互联网 发布:知乎spam 编辑:程序博客网 时间:2024/03/29 14:17
Java与C++都是当前比较流行的面向对象编程语言,它们都具有面向对象的三大特性——继承,封装,多态。从总体上来讲,C++兼容了C,在C语言的基础上加上了面向对象的,所以C++同时具有面向过程和面向对象的特点。而Java是一种完全面向对象的语言,它借鉴了C/C++的许多成功经验,但也摒弃了C++的许多难点与“不足”,因此它显得更为简单易学。下面主要谈谈它们之间的区别:
1.Java编译成字节码,然后通过Java虚拟机(JVM)解释执行,这使得Java具有更强的跨平台性,同时也降低了执行效率。而C++直接编译成可执行文件(.exe),因此C++从速度上来讲要优于Java,但跨平台性低于Java。
2.指针。指针是C++里面的精华,也是难点。Java则放弃了指针,但增加了内存回收机制(gc),从而有效避免了C++中由于指针使用不当而带来的麻烦,提高了代码的安全性。
3.多重继承。C++允许多重继承,但是Java只能继承一个类,但是可以实现多个接口。
4.C++支持运算符的重载,Java则不允许。
5.内存管理。Java提供自动内存管理机制。Java程序中所有的对象都是通过new操作符建立在内存堆栈上,这与C++中的new基本一致。但Java自动进行无用内存的回收(垃圾回收机制)。而在C++中需要程序员进行内存资源的释放,增加了程序设计的工作量。Java的这种gc机制是通过多线程来实现的,利用空闲时间来工作。
6.Java中取消了C++中结构体和联合的概念。
7.Java不支持预处理功能。C/C++在编译过程中都有一个预处理阶段,预处理阶段为开发人员提供了方便,但是增加了编译的复杂性。当然,Java中的引入语句(import)和这种预处理过程有点类似。
8.虚函数。在C++中,虚函数是在类中被声明为virtual的成员函数,当编译器遇到通过指针或引用此函数时,对其执行晚绑定,即通过指针或引用指向的类型信息来决定该函数是哪一个类的,通常此类指针或引用都声明类基类的,它可以指向基类或者派生类的对象。多态是指同一个方法根据其属性不同对象可以有不同的操作。而在Java中所有的函数都默认为虚函数,其自动实现了虚函数的机制。
9.异常处理机制。Java提供了try{}catch(){}finally{}结构类捕获异常,增强系统的容错能力,而在C++中没有如此方便的机制。
10.Java是一种纯粹的面向对象语言,而C++还保留了C语言结构化编程思想。
总之,Java衍生于C++,他们在语法上有许多相似之处,但Java在继承C++优点的同时也删除了许多的“难点”。
参考资料:Java与C++的比较 熊伟《理论研究》
- java与C的区别
- C与java的区别
- C与Java的区别
- 初学java java与C的区别
- C++与C的区别, C++ 与Java区别
- java与C区别
- Java与C及C++的区别
- Java与C/C++的区别
- java与c中数组的区别
- java与c,c++的区别
- Java与C/C++的区别
- C#与C++、JAVA的区别
- [zt] Java与C/C++的区别
- JAVA 中printf与c的区别
- JAVA与C/C++的区别
- Java与C语法上的区别
- Java与C/C++的区别
- java与c、c++的区别
- 【转】Oracle SQL优化技巧
- EXE文件加密网络授权管理方案 - 加密EXE文件并通过服务器端授权运行管理
- 我来教您这样做才叫创业
- php nginx配置手记
- Flex项目中如何实现跨域访问问题
- C++与Java的区别
- EXE文件加密器(最新版V5.3)
- 三大GC
- CEF特快交换
- AD590温度传感器的使用
- ARM Addressing Modes
- 测试大小2k
- Easy way for 10 decimal switch 16 decimal
- 简单说说:qt中数据存储方法(接口)的思路