一、相加后的类型
public static void main(String[] args) {
long a = 123123123123L;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//Long
System.out.println(b+c+d);//Int
System.out.println(c+d);//Int
}
运行结果
第一个和第一个都容易理解,而为什么第三个short类型加byte类型后为int类型呢?
我们可以试着将c+d强转为String,发现报错:
不能将int转为String,所以我们知道第三个c+d为int类型。
二、短路运算
话不多说,直接上代码:
public static void main(String[] args) {
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
&&运算符是两个都为真才为真,我们知道5<4肯定为false,而&&后面的语句是否还会执行呢?如果执行,c输出为6,如果不执行,则输出为5。我们来看看运行结果:
我们可以看到c输出结果为5,我们得知&&在前面为false的情况下,&&后的语句便不会再执行。