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

createh54个月前 (02-01)技术教程57

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运算符。

相关文章

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

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

二 JAVA语言基础之 基本数据类型(java的基本数据类型有哪些并简单叙述)

前面我们搭建了JAVA的开发环境和开发工具,今天我们正式进入JAVA基础语法的学习。首先认知下JAVA的八大基本类型:Java中主要有八种基本数据类型:1、整型:byte、short、int、long...

深入了解SHA-256算法及其Java实现

SHA-256(Secure Hash Algorithm 256-bit)是在日常开发中比较常见的一种加密哈希函数算法,属于SHA-2(Secure Hash Algorithm 2)系列,其输出结...

32位已死,对安卓和苹果意味着什么?

Arm宣布,从2023年起,其所有新智能手机CPU内核都将仅为64位,且没有32位兼容模式。2013年,苹果就在iPhone 5s中使用了64位A7处理器,我们开始拥有支持64位的智能手机处理器。不久...

Java的&&和&,||和|,位运算详解

《大数据和人工智能交流》头条号向广大初学者新增C 、Java 、Python 、Scala、javascript 等目前流行的计算机、大数据编程语言,希望大家以后关注本头条号更多的内容。java逻辑...