1.分清random与Random
- random是Math库里的静态方法,用来产生0到1之间的double类型的随机数。
- Random是util中的一个类,通过实例化一个Random对象来产生随机数。 若创建对象时不传递参数,则会将当前时间当成随机数产生的种子(也就是参数,用于随机数的初始化值),对于特定的种子,Random产生的随机数序列总是相同的。例:
Random rand = new Random(50);
之后通过调用nextInt()或nextFloat()等方法即可。传递的参数为产生随机数的上限。
2.区分逗号操作符与逗号分隔符
- java中唯一用到逗号操作符的地方就是for循环的控制表达式,那些语句均会独立执行.
for(int i = 0,j = 0; i < 10; i++)//通过使用逗号操作符,可以在for中同时定义多个变量。
- 方法中参数的分隔,均为逗号分隔符。
3.Foreach
JavaSE5引入的一种更加简洁的for语法,用于数组和容器(布吉岛什么玩意)。例如:
int[] a = new int[5];
for(int i = 0;i < 5;i++) {
a[i] = i*i;
}
for(int x : a) {
System.out.print(x+" ");
}
//通过定义一个int类型的变量x,将数组a中的元素依次取出。
//任何类型的数组都可以使用foreach,包括任何可迭代对象*****.
//对于String类型的字符串来说,可以使用toCharArray()方法,将字符串转为字符数组.
4.goto与标签
- java中并没有goto,但他的实现原理与标签类似.
- 标签
标签是后面跟有冒号的标识符。就像Label 1: 他们通常与break和continue结合在一起使用.并且一般用于多重循环,有奇效.以双重循环为例。
label1:
Outer_iteration{
label2:
Inner_iteration{
//...
break;
//...
continue;
//...
continue label1;
//...
break label1;
...
continue label1与break label1都会同时终止两个循环,并且回到选中的标签处。但是前者会继续从外部迭代。后者不继续。。。。大抵就是这意思,,很好理解。。。
5.Switch
一句话:switch 的选择因子不能是字符串或浮点型,只能用int或char。。。。当然也可以是一个产生整数表达式。。。。