控制流程
1。给primitive赋值直接把内容从一个地方拷贝到另外一个地方,互不影响。而给object赋值,是拷贝object的reference,比如,
两个对象c和d,c=d ,结果c和d都指向了原来只有d指向的对象,也就是说c和原来指向的对象脱离了。
2. java不允许把数字当作boolean用,这和c不同。
3.== 和!=比较的是两个对象的引用,即两个引用是否指向同一对象。equals()比较的是两个对象的实际内容是否相等。
比如:Integer a = new Integer(9);
Integer b = new Integer(9);
a == b; // false
a != b; //true
a.equals(b); //true
但是如果是自己定义的类:
YourClass a = new YourClass();
YourClass b = new YourClass();
a.i == b.i == 9;
a == b; //false
a != b; //true
a.equals(b); //false
因为equals()默认的行为是比较对象的reference,你必须重写(override)类的equsls()方法以比较内容。
绝大多数java类库的类是实现了equals(),所以他们会比较对象的内容而不是引用。所以,自己定义的类最好
也重写equsls()方法,以便得到正确的行为。
4.break会忽略尚未执行的循环代码,并退出循环。continue会跳过尚未执行的代码,中断本次循环,进入下一次循环。
5.在java里,唯一能放标签的地方就是循环语句的外面,而且必须直接放在循环语句的外面,他们之间不能有任何其他的东西。比如:
label1:
outer-iteration{
inner-iteration{
//....
break; // 1
//....
continue; // 2
//....
break label1; //3
//....
continue label1; // 4
//..........
}
}
上面的例子中,1退出内层循环,从外层循环开始继续下一个循环;2推出本次循环从内层循环开始执行下一次循环;3退出内层循环和外层循环,不会再次进入循环;
4退到标签处,继续执行外层循环。
6.switch语句会根据“整数表达式的值”,决定运行哪些代码。integral-seletor的值只能是int或char型的,字符串和浮点数等不能用switch.格式是:
switch(integral-selector){
case integral-value1 : statement; break;
case integral-value2 : statement; break;
............
default : statement;
}
7.将float和double转换成整数int时,它总是将后面的小数截掉。比如:int a = (int)0.7 //a = 0
4.Math.random();的值域是[0,1).
1。给primitive赋值直接把内容从一个地方拷贝到另外一个地方,互不影响。而给object赋值,是拷贝object的reference,比如,
两个对象c和d,c=d ,结果c和d都指向了原来只有d指向的对象,也就是说c和原来指向的对象脱离了。
2. java不允许把数字当作boolean用,这和c不同。
3.== 和!=比较的是两个对象的引用,即两个引用是否指向同一对象。equals()比较的是两个对象的实际内容是否相等。
比如:Integer a = new Integer(9);
Integer b = new Integer(9);
a == b; // false
a != b; //true
a.equals(b); //true
但是如果是自己定义的类:
YourClass a = new YourClass();
YourClass b = new YourClass();
a.i == b.i == 9;
a == b; //false
a != b; //true
a.equals(b); //false
因为equals()默认的行为是比较对象的reference,你必须重写(override)类的equsls()方法以比较内容。
绝大多数java类库的类是实现了equals(),所以他们会比较对象的内容而不是引用。所以,自己定义的类最好
也重写equsls()方法,以便得到正确的行为。
4.break会忽略尚未执行的循环代码,并退出循环。continue会跳过尚未执行的代码,中断本次循环,进入下一次循环。
5.在java里,唯一能放标签的地方就是循环语句的外面,而且必须直接放在循环语句的外面,他们之间不能有任何其他的东西。比如:
label1:
outer-iteration{
inner-iteration{
//....
break; // 1
//....
continue; // 2
//....
break label1; //3
//....
continue label1; // 4
//..........
}
}
上面的例子中,1退出内层循环,从外层循环开始继续下一个循环;2推出本次循环从内层循环开始执行下一次循环;3退出内层循环和外层循环,不会再次进入循环;
4退到标签处,继续执行外层循环。
6.switch语句会根据“整数表达式的值”,决定运行哪些代码。integral-seletor的值只能是int或char型的,字符串和浮点数等不能用switch.格式是:
switch(integral-selector){
case integral-value1 : statement; break;
case integral-value2 : statement; break;
............
default : statement;
}
7.将float和double转换成整数int时,它总是将后面的小数截掉。比如:int a = (int)0.7 //a = 0
4.Math.random();的值域是[0,1).