ThinkInJava《第三章 控制程序流程》总结

王朝java/jsp·作者佚名  2006-02-01
窄屏简体版  字體: |||超大  

× 除/,取余%,整数做除法,会把结果中小数点后面全部去掉,而不是四舍五入。

× 取得随机数的类java.util.Random中包含nextInt()、nextFloat()、nextDouble()等方法。

× 正则表达式(regular expressions)是一种采用定义的术语来描述字符串的方法,相关的包为java.util.regex.*。

× 对于Primitive变量,关系运算符==和!=工作的很好。

对于类变量,==和!=比较的是对象的reference。每个类都是从Object类继承来的,这个类有一个equals()方法:

public boolean equals(Object obj) {

return (this == obj);

}

可见,该方法还是比较的两个对象的reference。那么,要比较两个对象的实际内容,该怎么办?只能是给在类内实现(override)具体的、专门的equals()方法,否则,还是比较的两个对象的reference。

绝大多数java类库中的类都override了equals()方法,所以它们会比较对象的内容而不是reference。

× JVM处理逻辑运算符时,会使用短接(short circuiting)规则,以达到性能的提高。

× 使用三元运算符能使代码更紧凑:return x<0?-x : x ;

× 类型转换:

在情况合适的情况下,Java会自动的实现数据类型的转换。如:将int型值赋给float型变量,编译器会自动将这个int转换为float。

在遇到不能实现自动转换的情况时,可以强制类型转换。

Java的类型转换是安全的,遇到narrowing conversion的时候,会产生一个异常。

Java允许除boolean之外的所有primitive类型数据进行任意的转换。

× 表达式中的最大的数据类型决定了表达式结果的数据类型。

× do{…} while(true/false);

× 在for语句的“初始化”和“步进调整部分”可以使用逗号分隔语句。

× 在循环语句的正文里,可以使用

break和continue语句控制循环的流程。

Java中包含goto保留字,但没有使用goto保留字。

label1:

outer-iteration {

inner-iteration {

break; //中断内部循环,退到外部循环

continue; //重新移到内部循环的开始

continue label1; //退出内部、外部循环,退到label1处,再重新进入外部、内部循环

break label1; //退出内部、外部循环,退到label1处,再从这个标签标识的循环底部“溜出”(不再进入循环)

}

}

× Math.random()生成的是0到1之间的随机值。

× Switch语句中的选择条件必须能产生int或char这样的整数值的选择条件。

Switch语句中的

break语句是可选的,一般每个case语句中都要使用

break语句,但不使用

break语句也是可以的,还能设计出巧妙的程序。

Break语句退出整个switch语句。仔细体味下面的判断元音辅音的程序断:

char c = (char)(Math.random() * 26 + 'a');

switch(c) {

case 'a':

case 'e':

case 'i':

case 'o':

case 'u': System.out.println("vowel");

break;

case 'y':

case 'w': System.out.println("Sometimes avowel");

break;

default: System.out.println("consonant");

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航