Java学习总结2——操作符注意点总结

一、&与&&、|与||的区别

区别1:

&用于位运算,也可以用于逻辑与运算;

&&只用于逻辑与运算。

区别2:

&用于逻辑运算时,无短路的功能,&&具有短路的功能。

public class Test {
	
	public static void main(String[] args) {
		
		int a = 1,b = 2;
		if ((a < 0) & (b ++ < 2)) {
			//&不短路, b++执行
		}
		System.out.println("b=" + b);
		
		int c = 1,d = 2;
		if ((c < 0) && (d ++ < 2)) {
			//&&短路导致d++不执行
		}
		System.out.println("d=" + d);
	}

}
输出结果:

b=3
d=2

|与||的区别同&与&&区别类似。

二、移位运算

java移位运算符有三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。

1.对于char、byte、short类型的数值进行移位操作时,会转换成int类型,得到的结果也是int类型的数值。

byte i = (byte)1 << 7;
以上代码报错,无法编译,因为((byte)1 << 7)结果是int类型,而int类型无法隐式向下转换为byte类型。

2.对>>>=运算,对于byte、short类型进行操作时,会首先将数值转换成int类型,然后进行右移,最后被截断,赋值给原来的类型,因此有可能得到-1的结果。


三、==和equal()的用法和区别

1.==既可用于基本类型的比较,又可用于对象的比较。

1)当用于基本类型时,比较的它们的数值是否相等,

2)当用于引用(对象)类型时,比较的是引用是否指向同一个对象。

2.equal()只用于对象的比较,默认情况下,equal比较的是对象的引用(是否指向同一个对象)。大多类库都重写equal()方法,用equal比较对象的内容是否相等,而非比较引用是否指向同一对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值