运算符
常见的运算符如下所示:
其中,逻辑运算符:
//举例逻辑与&
public class java01 {
public static void main(String[] args) {
int a = 99;
int b = 100;
System.out.println(a > b & a > b++);
System.out.println(b);
}
}
结果:false
101
以上程序的运行结果是101,说明b++已经执行了。
对于逻辑与&来说,无论左边表达式是true还是false,右边表达式一定会执行。
-------------------------------------------------
//举例短路与&&
public class java01 {
public static void main(String[] args) {
int k = 99;
int f = 100;
System.out.println(k > f && k > f++);
System.out.println(f);
}
}
结果:false
100
测试得出f++并没有执行,因为左边表达式(k > f)为false,右边表达式就不再执行了,短路现象。
对于短路与&&来说,左边表达式为false,就会发生短路,右边表达式不再执行。
--------------------------------
//举例逻辑或|
public class java01 {
public static void main(String[] args) {
int a = 5;
System.out.println(a > 2 | (a=a+2)>5);
System.out.println("a="+a);
}
}
结果:true
a=7
左边表达式(a>2)为true时,右边表达式也会执行。
对于逻辑或|来说,无论左边表达式是true还是false,右边表达式一定会执行。
-----------------------------------
//举例短路或||
public class java01 {
public static void main(String[] args) {
int b = 5;
System.out.println(b > 2 || (b=b+2)>5);
System.out.println("b="+b);
}
}
结果:true
b=5
测试得出b=b+2并没有执行,因为左边表达式(b > 2)为true,右边表达式就不再执行了,短路现象。
对于短路或||来说,左边表达式为false,就会发生短路,右边表达式不再执行。
扩展类的赋值运算符:(+=、-=、*=、/=、%=)
举例:x += 1 和x = x + 1的区别
byte b = 10;
b = b+1;//编译报错
编译没有通过的原因:b 是byte类型,1 是int类型,根据类型转换规则得知:
byte和int混合运算最后结果是int类型,int类型的值无法直接赋值给byte类型的变量b,所以编译报错。
继续测试:
byte b = 10;
b += 1;//编译运行成功,结果b=11
实际上java对于扩展类的赋值运算符进行了特殊的处理,所有的扩展赋值运算符,最终都不会改变运算的结果类型,
假设前面的变量是byte类型,那么后面的表达式运算之后的结果还是byte 类型。
所以实际上b += 1等同于:byte b = (byte)(b+1);
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)