1.Java数据类型大小与机器结构无关,这也正是其可移植的原因之一。
int永远是32位的 long永远是64位的,JVM负责屏蔽这个差异性 ,32位机编译出的java类,可以运行在64位机下
2.作用域
与C++一样,Java的作用域也由花括号的位置决定,但是Java不存在变量覆盖,一切覆盖都是不允许的,比如:
{
int x = 10;
{
int x = 100; /* illegal */
}
}
3.Java是主动多态的,你不用关心具有继承关系的多个类之间的同名成员函数会调用哪个,Java会主动地从祖父类、祖祖父类……追溯至最高一级父类,然后从上至下开始寻找并调用。C++不会主动使用多态,要使用多态,就要用虚函数。你不用virtual去修饰基类的成员函数,程序执行时函数调用就不会自动调到派生类。
4.Java中所有的函数都与类相关,没有全局变量和非成员函数,而C++却支持这些。
int永远是32位的 long永远是64位的,JVM负责屏蔽这个差异性 ,32位机编译出的java类,可以运行在64位机下
2.作用域
与C++一样,Java的作用域也由花括号的位置决定,但是Java不存在变量覆盖,一切覆盖都是不允许的,比如:
{
int x = 10;
{
int x = 100; /* illegal */
}
}
3.Java是主动多态的,你不用关心具有继承关系的多个类之间的同名成员函数会调用哪个,Java会主动地从祖父类、祖祖父类……追溯至最高一级父类,然后从上至下开始寻找并调用。C++不会主动使用多态,要使用多态,就要用虚函数。你不用virtual去修饰基类的成员函数,程序执行时函数调用就不会自动调到派生类。
4.Java中所有的函数都与类相关,没有全局变量和非成员函数,而C++却支持这些。