Java中的"短路"现像
小知识点:
JAVA中&&意思是“条件与”逻辑操作符,使用方法是x&&y,功能描述:x和y均为true,取值是true,否则取值是false。
JAVA中||意思是“条件或”逻辑操作符,使用方法是x||y,功能描述:x和y有一个为true,取值是true,否则取值是false。
static boolean test1(int val)
{
System.out.println("test1("+val+")");
System.out.println("result:"+(val<1));
return val < 1;
}
static boolean test2(int val)
{
System.out.println("test1("+val+")");
System.out.println("result:"+(val<2));
return val < 2;
}
static boolean test3(int val)
{
System.out.println("test1("+val+")");
System.out.println("result:"+(val<3));
return val < 3;
}
public static void main(String[] args) {
boolean b=test1(0)&&test2(2)&&test3(2);
System.out.println("expression is "+b);//只运行了test1和test2
System.out.println("--------------------------------");
boolean c=test1(0)||test2(2)||test3(2);
System.out.println("expression is "+c);//只运行了 test1(0)
}
根据上面的知识点B:test1(0) 为真test2(2)为假后面不管值为什么 B都是为假 所以程序只执行到test1(0) 和test2(2). C:因为test1(0)为真不管后面值 为什么C都是真,所以程序只执行了test1(0)就退出了.
因此,在写代码的时候要注意,要避免出现"短路"现象而导致某些一些代码块没有执行,另外"短路"现象本身不是bug,这是为了提升Java的性能而出现的短路。
Java中的Random
在 Java中要生成一个指定范围之内的随机数字有两种方法:一种是调用 Math 类的 random() 方法,一种是使用 Random 类。Mtah.random 只能产生 double 类型的 0~1 的随机数。
Random 类位于 java.util 包中,Random 类提供的所有方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的概率是均等的。