基本语法不同
·Java文件名要和类名称相同,例Circle.java
·Java是解释型的 c++编译
·Java具备/** */格式的注释,可以被javadoc命令转换为文档
·Java命名规范严格
·Java定义常量的方法不同,用final
·Java类型转换更严格
intx=2.0;×floaty=2.0;× 因为java不会有一个截断的效果而c++会自动截断 强制转换应该在最后加上f d
·字符类型占16个bit c++ 8bit
·Java字符串用String定义,每个字符串都是对象
数组定义不同
·数组定义的语法不同
Java数组的定义语法不同 myList
·double [] myList=new doublel10]; //如果不new的话mylist只是具有了指向数组的能力而不能是数组的没名字
·myList是一个引用。·C++数组的两种定义形式:
double myList[10];
double*myList=new double[10];
·数组初始化
。Java对数组自动进行初始化 自动赋初值为0
。C/C++语言不进行自动初始化,其值为任意值
函数定义的区别
·Java函数被称为方法
·函数传参
。Java函数的传参方式有传值、传数组方式
。C++函数的传参方式用传值、传指针(传数组本质也是传指针)、传引用
函数返回指针或引用
·Java函数的返回类型为数组时,其含义与C++的指针函数相似,但Java更好用。

对象的创建与回收
·创建对象的方式
。Java创建对象的方式:
·Circle myCircle=new Circle();
。C++创建对象的方式:
·Circle c;
·Circle *myCircle=new Circle;
·对象数据域初始化
。Java自动对对象属性进行初始化 。C语言不会自动初始化,未初始化则为任意值
对象存储空同回收
。Java的自动垃圾回收:当存储在堆中的对象(数据)失去引用时, Java自动垃圾回收垃圾,例如:
·Circle myCircle=new Circle();mycircle = null; //失去引用 对失去引用的数据进行回收
C++对象空间的回收
·存储在栈中的对象,自动回收;
·存储在堆中的对象,必须由程序员主动用delete删除
对象生命周期结束时
Java准备回收对象时,会调用finalize函数, 如果需要做善后处理工作,如关闭文件的代码可以放这个函数里。(Java回收垃圾时间不确定)C++的对象生命结束时,会调用析构函数。
this引用与this指针

对象数组

c++左右两种方式都可以 实现多态用右边
继承相关
·共同的父类
Java所有类的共同父类是Object
。C++中所有类的共同父类是CObject
·super语句
Java使用super语句完成构造函数链的调用(略) 调用父类的构造函数
·protected
。Java和C++用法不同(略)
本文对比了Java和C++在基本语法、数组定义、函数定义、对象创建与回收、对象生命周期等方面的区别。Java是解释型语言,严格遵循命名规范,使用String定义字符串,有自动垃圾回收机制;而C++是编译型语言,数组不自动初始化,需要手动回收堆内存,且支持直接操作指针。两者在对象生命周期结束时分别调用finalize和析构函数。
1070

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



