额其实认为语言语法之间是没有可比性的!
但是因为额曾经学过C/C++,而今又学Java,有赵本山说的话:“知识都学杂了!”,所以我个人总结一下,望提醒自己!
Java 和C/C++的对比:
Java中:
double 要用%f;
布尔型:boolean;
字符型占两个字节;
If , while,for 中进行真假判断时只能使用逻辑表达式,不能用数字。
较长的整数后要加L;
默认所有实数都是double类型的;
安全性高:当高级类型转换为低级类型会报错!例;想要将double转换为float, float a=2.0f(F);
取余时:被除数和除数可以是实数;但所得余数的正负只和被除数相同;
Java中没有指针:
A *a=new A();//C++
A a=new A();//java
动态分配内存时:c/c++中是用栈中指针a来指向分配的堆中空间,
而java在形式上用类的对象a(相当于静态指针变量)来指向堆中的内存,但可以用a代表堆中的内存;
构造函数:
Java中如果你定义了有参的构造函数,则当你调用无参的构造函数时,必须自己定义无参的构造函数;而C++中不会这样;
当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化,数值型的被初始化为;boolean型被初始化为false;引用被初始化为NULL;
C++、C中数组可以在栈中创建,但java 中数组是引用类型,只能在堆中创建。
C和C++ 中枚举类型enum是可以用0,1……来表示的,但java中不行;
例:enum MyColor { red, green, blue };
MyColor m= red;//C或C++中定义枚举类型新变量
MyColor m= MyColor.red;//java中定义枚举类型新变量
C中没有String引用类型,它是用字符数组表示,用‘\0’表字符结束;而C++和java中有String引用类型;
另外,C++中的String对象可以用s[i]进行操作,而Java中则不可以,需要转换为char[]才行;