java中的|与||,&与&&的区别,与、或,非、异或、位运算

java中的|与||,&与&&的区别,与、或,非、异或、位运算java中的|与||,&与&&的区别,与、或,非、异或、位运算

大家好,又见面了,我是你们的朋友全栈君。

一、java中的|与||,&与&&的区别

其实java中的|与||,&与&&是有区别的,自己调试了下,发现了区别所在具体如下:

if (testA(a)||testA(b))

1、如果是 || 如果testA(b)为true,那么只会执行testA(a)而不执行判断方法testA(b),而 则会将testA(a)和testA(b)都去执行一次。

2、如果是 && 如果testA(b)为false,那么只会执行testA(a)判断方法,而则会将testA(a)和testA(b)都去执行一次。

您可以用debug模式打断点调试下就知道是否执行了判断方法。

二、下面再细讲讲与、或,非、异或、位运算

//移为运算的计算速度快


int a = 4,b = 2;

//1、&=   与运算  二进制中,只有同为1才是1
		a &= b;
		System.out.println("a: "+a);

//2、|=   非运算  二进制中只要一个为1就为1
		a = 4;
		b = 2;
		a |= b;
		System.out.println("a: "+a);

//3、^=   异或运算  二进制中只要是两者的值不一样那么就是1
		a = 4;
		b = 2;
		a ^= b;
		System.out.println("a: "+a);


//4、<<=  移位运算  相当于是a = a * Math.pow(2,b);
		a = 4;
		b = 2;
		a <<= b;
		System.out.println("a: "+a);

//5、>>=   移位运算  相当于是a = a / Math.pow(2,b);
		a = 4;
		b = 2;
		a >>= b;
		System.out.println("a: "+a);

//6、~   非运算  二进制所有的位数取反;
		a = 4;
		b = 2;
		a = ~a;
		b = ~a;
		System.out.println("a: "+a+" b: "+b);

//7、>>>=   移位运算  二进制统一向右移 b位,左边不管是什么都用0代替,这是与 >>的区别;
		a = 4;
		b = 2;
		a >>>= b;
		System.out.println("a: "+a+" b: "+b);
		System.out.println(8>>>1);























版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156782.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 羊车门作业

    羊车门作业

    2021年5月27日
    94
  • 原码反码补码的相互转换_补码转化为反码

    原码反码补码的相互转换_补码转化为反码原码反码补码的相互转换原码反码补码的转换还是比较简单基础的问题。之前学习java的时候就学过,后来忘记了,忘记了!!!,后来学了位移运算符,左移右移无符号右移之后就由有点儿懵了。原码,反码,补码二进制中第一位是符号位,0表示正数,1表示负数。以八位二进制数为例。原码十进制数正1的二进制原码[+1]原=00000001十进制数负1的二进制原码[-1]原…

    2025年6月29日
    2
  • Swift教程之typealias代替OC的typedef[通俗易懂]

    Swift教程之typealias代替OC的typedef

    2022年1月24日
    40
  • phpstom2021激活码[在线序列号]

    phpstom2021激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    46
  • List数组转换JSON格式

    List数组转换JSON格式最近在写java,然后leader需要几个接口,里面的东西就是json格式。然后需求明白后,想了想思路:先把需要的东西从库里拿出来放到一个数组里面,然后再将数组转换成json,大体思路确定后,开始敲代码。首先List一个数组,将要转换的东西先放到configs数组里面:List&lt;Class&gt;configs=newArrayList&lt;Class&gt;();…

    2022年6月21日
    33
  • J2ME开发平台的搭建「建议收藏」

    J2ME开发平台的搭建「建议收藏」 在本文主要介绍J2ME开发平台的搭建,这一步骤在网上已经存在许多了,在此仅仅提供一个简单的参考就可以了! 1下载安装工具:   JDK1.6  http://java.sun.com/javase/downloads/index.jsp    SunJavaWirelessToolkit2.5.2_01forCLDC   http://java.sun.com/

    2022年7月16日
    19

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号