第3章 操作符
这一章主要讲了java中的操作符。跟你平时用的都一样,这里讲一些平时不经常用的特例。
3.1 测试对象等价性
- 基本类型用 == 和 !=,比较的是对象的引用
- 特殊方法用 equals(),同样比较的是引用 // 比如这里的两个特殊类的对象
Value v1 = new Value();
Value v2 = new Value();
System.out.println(v1.equals(v2));
3.2 类型转换操作符
- java 中的 boolean 类型不允许转换
- float 和 double 小数转换成为整数,做截尾操作。如果想要四舍五入,用 Math.round()方法。
- 提升。意思就是在做运算时候,系统默认把小的类型转换成为大的类型。比如乘 float 和 double,结果就是 double。int 加 long, 结果就是 long。其他情况下,需要你特殊指定。(int)a 这种。
- 溢出。大的整数做运算,结果可能会超过整数所能表示的最大范围,但是编译器不报错,最终结果是错的。之前在做 算法题的时候就遇到过这种情况。
第4章 控制执行流程
do-while & while
二者唯一的区别是,do-while 至少会执行一次。
逗号操作符
java中唯一用到逗号操作符的地方就是 for 循环控制。
for(int i=1,j=i+10; j<5; i++, j=i*2){
System.out.println(i,j);
}
/*
1 11
2 4
3 6
4 8
*/
标签
标签是后面跟着冒号的标识符。
label1:
这里神奇的是,如果 break 和 continue 跟标签一起使用,就可以使循环转到标签的位置。
public class LabeledWhile {
public static void main(String args[]){
int i = 0;
outer:
while(true){
System.out.println("Outer while loop");
while (true){
i++;
System.out.println("i = "+i);
if(i==1){
System.out.println("continue");
continue;
}
if(i==3){
System.out.println("continue outer");
continue outer;
}
if(i==5){
System.out.println("break");
break;
}
if(i==7){
System.out.println("break outer");
break outer;
}
}
}
}
}
运行结果是
Outer while loop
i = 1
continue
i = 2
i = 3
continue outer
Outer while loop
i = 4
i = 5
break
Outer while loop
i = 6
i = 7
break outer
可以看到,如果想要用break跳出外层循环,要用 break outer(即break 加标签)的方法来做。
网友评论