测试对象的相等性:虽然==和!=能用于所有对象,但得出的结果却未必是你想要的。除了原始数据类型外,
==和!=用在两个对象间都比较的是两个对象的reference,而我们一般要比较的却是对象的内容,我们可以
使用equals()方法,但该方法在object基类缺省行为还是比较对象的reference,所以在比较自己创建的类的对象
时,应该自己实现该方法。好在绝大多数java类库的类都实现了该方法,我们只管用就好了。
短接,位运算符,移位运算符,三元运算符( ? :),逗号运算符(java里只有在FOR循环里有应用),string
的+运算符(自动转换后相加)。
常见的使用运算符中的错误:while( x = y) {//do something},哦,在c++里会不小心犯的错误,java里却不会
出现,因为java里的boolean 是false和true,而不是0 和非0;
类型转换:宽位值转换为窄位值时,java要求你进行明确的显示转换否则产生异常,因此避免了意外出错。
java没有sizeof(),曾经在《c++高质量编程》里被大段讲过的东西终于一下子被咔喳了,真爽。
控制语句:if else; for ; while ; do while; for (只有for语句才有在“控制表达式”里定义变量的能力,千万别在
其他选择语句或循环语句里这么做。虽然可以定义变量,但也只能是同一个类型而已); break (跳出当前循环)
; continue(立即进入下一轮循环); while(true)==for(;;) ; switch case;
goto后来者:C++程序员在编程时因为担心goto的副作用,都很谨慎的使用它,或者干脆不用,但有时它也会有
很好的效果在适当的地方,(不过我至今还没用到)java终于摒弃了这把双刃剑,同时提供了另一个类似的功能
的东东,以便能在适当的地方起些适当的作用。label.
///////////////////////////////
label1:
outer-iteration
{
inner-iteration
{
//......
break; //案例1
//......
continue; //案例2
//......
continue label1; //案例3
//......
break label1; //案例4
//......
}
}
/////////////////////////////////
在案例1中break中断了内部循环,退到了外部循环。案例2中continue仍在内部循环。案例3中continue到label1
处,重新开始循环。案例4退到label1处,但是这次再不进入循环了(不可思议)。
以上规则同样适用于while循环。
ok,今天到这里,明天学习隐藏实现,对象的初始化和清理。