- 变量及基本类型
float f = 3.14;// correct
float f = 3.14f;// correct
float f = 3.14;// Type mismatch: cannot convert from double to float
Java 当中声明 float 类型必须在数字后添加字符 f。
--------------------------------------------------------------------------------------------------------------------------long long i = 0;// correct
long long i = 0;// Syntax error, insert ";" to complete BlockStatements
Java 的基本类型没有 long long 类型。
其中 void 类型的变量只能为指针,表示暂不声明指针类型;auto 类型类似于 JavaScript 当中的 var,表示由编译器自行推断该类型,多用于增强 for 循环或 for each 循环中。C++ 基本类型 整型 short、int、long、long long 无符号整型 unsigned short、unsigned int、unsigned long、unsigned long long 浮点型 float、double(long float)、long double 逻辑型 bool 字符型 char、wchar_t 无符号字符型 unsigned char 空值 void 变量型 auto
Java 基本类型 整型 byte、short、int、long 浮点型 float、double 逻辑型 boolean 字符型 char - 类及面向对象特性
类当中默认(缺省)为 private。C++ 类中的访问权限 public 任何其他对象都可调用 protect 本类和子类可以调用 private 只有本类可以调用
*结构体中默认(缺省)为 public。
Java 类中的访问权限 public 任何其他对象都可调用 protect 本类、本包可以直接调用,继承后可跨包调用 默认(缺省) 只有本类或本包可以调用 private 只有本类可以调用 - 运算符
int i = 0; ++i = 5;// legal, i = 5
Java 当中没有左值自增语法。int i = 0; ++i = 5;// Syntax error on token "++", delete this token
--------------------------------------------------------------------------------------------------------------------------
C++ 当中有运算符重载功能。除以下五个运算符,其余都可以重载。
Java 没有运算符重载的功能。域运算符:: 表示作用域 三元运算符?: if - else 语句的另一种形式 成员运算符. 某个对象调用其成员函数或属性 成员指针运算符.* 某个对象调用其成员函数指针 sizeof运算符sizeof 获得某个变量或结构体占用的空间,返回值为 unsigned int 类型
*附上本人实现的移位运算符重载的实现:移位运算符重载 - 其他
for 循环、增强 for 循环、for each 循环
两种语言当中 for 循环的表示方式完全相同。for (auto var : collection_to_loop) for each(auto var in collection_to_loop)// only legal in VS
if 条件语句for (String string : args)
int x = 2, y = 3; if (x = y) cout << "branch excuted";//this line will be excuted
C++ 中整型可以做 bool 值,非 0 即为真。Java 中整型不能做 boolean 值。int x = 2, y = 3; if (x = y) System.out.println("branch excuted");//Type mismatch: cannot convert from int to boolean
待续