控制程序流
1. 打印输出
可用相应数据类型(基本类型)的打印语句打印字符串和数字
如:
int i = 10;
float f = 10.9f;
printInt("Integer:", i);
printFloat("Float:", f);
Random rand = new Random();
int i;
double d;
long l;
i = rand.NextInt();
d = rand.NextDouble();
l = rand.NextLong();
2. Regular expression
正则表达式是作用通用术语来描述字符串的一各方法。
要表达一个数可能有也可能性没有负号,可以在负号后面跟一个问号:
-?
要表示一个整数,你可以描述其具有一位或多位数字。在正则表达式中,一个数位用
'/d'
可用()将表达式分组。
如:
i > j is (true | false)
这里边的"|"表示逻辑与。是说这个字符串不是true 就是false
对于其他的字符,只要不是正则表达式专有的特殊字符,都要求精确匹配。
但在Java中的字符串中,必须转义。
如 j = -?/d+ 在Java中就是j = -?//d+
j + k = -?/d 在Java中就是j /+ k = -?//d
3. 字符串比较必须用equals()方法
4. equals()方法比较的是引用。
例如:
clsaa Value {
int i;
}
public class Test {
public static void main(String[] args) {
Value v1 = new Value();
Value v2 = new Value();
v1.i = v2.i = 100;
System.out.println(v1.equals(v2));
}
}
这时结果就是false。要想得到我们想要的比较方法,只能在新类中重载equals()方法.
5. 逻辑运算符只能用于布尔值。
6. 短路现象。
如: if(a && b && c)只要有一个值是false则剩下的表达式不被判断。
7. 移位操作符只能处理整数类型。
"<<"左移操作符:将操作符左边的运算对象向左移动操作符右侧指定的位数,在低位补0;
">>"有符号右移操作符:将操作符左边的运算对象向右移动操作符右侧指定的位数,若符号为正,则在高位插入0,否则插入1;
">>>"无符号右移操作符:无论正负,都在高位插入0。
8. 对char, byte, short进行移位处理时,在移位前会自动转换成int,结果也是int。
右侧的操作数只能是其二进制中的低5位。这是为了防止移出int的范围。
如果是long,则右侧操作数为其二进制中的低6位.
9. 在对byte, short进行无符号右移赋值运算时,可能得到的值不对。因为它是先转成int,再移位,再截断,最后转回自己的类型。
这样得到的结果可能是-1。
10.可以把任何基本数据类型转换成别的基本类型,但布尔型除外。
11.对基本数据类型执行算术或按位运算时,只要比int波折都会转换成int。如要将其给小类型就要类型转换。
12.条件判断中的表达式只能是逻辑表达式。
13.标签和break, continue
label1:
outer-iteration {
inner-iteration {
break; //1
continue; //2
continue lable1; //3
break label1; //4
}
}
1: break中断内部循环,回到外部循环;
2:移回内部循环;
3:中断内部循环和外部循环,转到label1处,然后继续循环,只是是从外部循环重新开始;
4:和3一样,只是不再执行循环。
这样的组合应用可以用于退出整个循环而不退出方法。
14.switch(integral-selector)中的只能用int(short, byte)和char类型。
15.Math.random()中输出的范围是[0, 1)。