Java和C++区别(java和c区别大吗)

createh53个月前 (02-01)技术教程26

Java和C++都是面向对象语言。也就是说,它们都能实现面向对象思想(封装、继承、多态)。而由于C++为了照顾大量C语言使用者,而兼容了C,使得自身成为带类的C语言,多多少少影响了其面向对象的彻底性!Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,摈弃了其他语言的不足之处,从根本上解决了C++的固有不足。

Java和C++的相似之处多于不同之处,但Java语言更容易学习,而且编程环境更为简单。



指针

C++:指针是重要的数据结构,父类和子类的对象之间很多时候是依靠指针联系的。但容易操作失误而造成系统崩溃。

Java:取消了指针操作,只是虚拟机内部使用指针,程序员不得使用。保证了安全性。



多重继承

C++:支持多重继承,允许多个父类派生一个子类。缺点是使用起来很复杂。

Java:不支持多重继承,但是允许一个类继承多个接口,从而实现了C++多重继承的功能,又避免了C++中的多重继承实现方式带来的诸多不便。



操作符重载

C++:支持操作符重载,使用复杂。

Java:不支持操作符重载,使用简单。



数据类型和类

C++:允许将函数和变量定义为全局的。

Java:所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。



字符串

C++:不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束.

Java:字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心.

自动内存管理

C++:必须由程序员释放内存资源,增加了程序设计者的负担。

Java:无需程序员回收内存,无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。



预处理功能

C++:在编译过程中都有一个预编译阶段,使用#include语句,即众所周知的预处理器,增加了编译的复杂性。

Java:没有预处理器,但提供了import语句提供类似的功能。

goto和const

C++:存在goto和const。

Java:不存在

使用try-catch-finally代替goto

使用final代替const



类型转换

C++:支持自动强制类型转换。例如,在c十十中可将一浮点值赋予整型变量,并去掉其尾数。

Java:不支持c十十中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。

数据类型长度

C++:对于不同的平台,同一个数据类型分配不同的字节数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位.这使得C语言造成不可移植性。

Java:对每种数据类型都分配固定长度.比如,在Java中,int类型总是32位的。即无sizeof运算符。

相关文章

给32位系统装8g内存条能用吗?为什么?

关于32位和64位,这个概念一直让人比较懵。在买电脑的时候,我们看到过32位和64位CPU。下软件的时候,我们也看到过32位或64位的软件。就连装虚拟机的时候,我们也看过32位和64位的系统。在写代码...

JDK安装、Eclipse安装及运行环境配置

1、eclipse下载打开地址:http://www.eclipse.org/downloads/;根据自己机器的操作系统,页面上显示适应机器操作系统的Eclipse下载列表,也可以点击下图所示位置切...

JDK 17 - Java 17 的新特性速览(jdk17 lts)

JDK 17 于 8 月 5 日进入候选发布阶段,最终候选版本将于 8 月 19 日发布。所有功能/JEP 集都被冻结以进行目标发布。有 10 个新功能 + 2 个功能删除 + 2 个功能弃用,还有...

Java并发系列教程(java并发大神)

导读:本文将给大家分享Java并发编程相关的知识点,具体将对Java常见的并发编程方式和手段进行总结,以便可以从使用角度更好地感知Java并发编程带来的效果。Monitor概念Java对象的内存布局对...

Java内存模型JMM重要知识点(java内存模型和内存结构)

一、Java内存模型JMMJava内存模型即Java Memory Model,简称JMM。用来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各平台下都能够达到一致的内存访问效果。JM...