C++与Java区别
1.c++有指针,Java无指针,c++需要对不用的内存进行释放(free,delete),Java会自动回收。
2.c++在不同平台上相同数据类型字节大小可能不同,16位操作系统上int占字节数为16,long占字节数为32,32位操作系统上int占的字节数为32,long占32,64位操作系统上int占字节数为32,long占字节数为64.
Java在不同平台上相同数据类型字节大小相同,确保了java的跨平台性。
3.Java是完全面向对象的,java中所有的数据都以类的形式存在。
4.java中没有goto,但有label
5.c++中有对类的多重继承。java中没有,但有对接口的多重继承
6.变量的作用域。c++中如果有这样的情况
{
int a=1;
{
int a=2
}
}
那么里面花括号里a的值会覆盖外面的值。
但是如果在java里就会报错:该变量已定义。
7.c++中定义一个数组之后,就会为其分配空间,可赋值。
但是在Java里声明完之后并不会对其分配空间,需要先new(实例化)之后才会为其分配空间。
8.当变量作为类的成员使用时,Java才确保给定默认值,以确保那些基本类型的成员变量得到初始化,但是C++没有此功能。而对于局部变量,C++编译器会对其予以警告,Java则会视为错误。
9.java中除了bool类型的变量外其余基础数据类型均可转换为其他基础数据类型。
10.java中不可以对运算符进行重载操作,但c++可以。
11.java不可以将一个非bool值在逻辑判断式里面使用,c++可以,0为假,非0为真。
12.Java是半解释和半编译的,运行速度比C++慢。 这也是java能跨平台的原因之一。
13.java中有异常机制用于捕获异常,为c++中没有