java基础

java基础1 --& &&操作符

1 & 和 &&
共同点 都可以作为逻辑与(and) 都 符合两边的表达式的结果都为true 时 才返回true 否则有一方为false 返回结果都为false

&& 还有短路的功能 比如 if(str !=null && !str.equals(")) 如果str = null 时 就不会报.NullPointerException 异常的
&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

以下是&& 的具体实现 因为有短路功能 所以 不会抛出异常 j 的值在程序执行完毕之后 不会增加

public static void  opentionDirectShort(){
		String str = null;
		//以下if 中 用 &&  可以避免抛出 Exception in thread "main" java.lang.NullPointerException 异常
		if (str != null && str.equals("")) {
			System.out.println("条件符合 ");
		}else{
			System.out.println("使用&&  条件不符合 直接短路了 就不会走str.equals(\"\") 也就不会出现NullPointerException异常了");
		}
        System.out.println("===============以上是短路 因为短路未抛出异常   以下是因为短路 j的值没有增加 =================");		
		int i = 0;
		i += 1;
		System.out.println(i);
    	int j = 1;
		if (i > 2 && ++j > 0) {
			System.err.println("true");
		} else {
			System.out.println("false");
		}

		System.out.println(i + ":  短路后 j 是不会累加的 " + j);
		
	}

以下是 & 做逻辑的例子 没有短路功能 所以j的值增加

	public static void  opentionand1(){
		int i = 0;
		i += 1;
		System.out.println(i);
    	int j = 1;
		if (i > 2 & ++j > 0) {
			System.err.println("true");
		} else {
			System.out.println("false");
		}

		System.out.println(i + ":" + j);
	}

以下为 & 作为位运算符的例子

public static void opentionand2(){
		int a = 2;  //  2 的二进制为 10
		int b = 3;  //3 的二进制为 11 
		int c = a&b;   //保持 规则 全1 则为1 其他都是0 的原则  a&b的二进制为 10   转成十进制为 2
		System.out.println(c);
	}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值