一、java中的|与||,&与&&的区别 其实java中的|与||,&与&&是有区别的,自己调试了下,发现了区别所在具体如下: if (testA(a)||testA(b)) 1、如果是 || 如果...二、下面再细讲讲与、或,非、异或、位运算 //移为运算的计算速度快 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; b = ~a; System.out.println("a: "+a+" b: "+b); //7、>>>= 移位运算 二进制统一向右移 b位,左边不管是什么都用0代替,这是与
所以1^2^…^n^…^n^…^1000 = 1^2^…^1000^(n^n)= 1^2^…^1000^0 = 1^2^…^1000(即序列中除了n的所有数的异或)。...令,1^2^…^1000(序列中不包含n)的结果为T 则1^2^…^1000(序列中包含n)的结果就是T^n。 T^(T^n)=n。...所以,将所有的数全部异或,得到的结果与1^2^3^…^1000的结果进行异或,得到的结果就是重复数。...具体过程:第一句“a-=b”求出ab两点的距离,并且将其保存在a中;第二句“b+=a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a+=b”求出b到原点的距离(a...到原点距离与ab两点距离之和),并且将其保存在a中。
---- Java中的二进制 熟悉Java的同学应该知道在Java7之前是不支持前置直接表示二进制数的,但从7版本之后就可以了: 二进制:前置0b/0B 八进制:前置0 十进制:默认的,无需前置 十六进制...负数以其正值的补码形式表达,方法为其绝对值求反加1;2、用同样方法可以看出Integer类型是占用32位(4个字节) ---- Java中的位运算 Java语言支持的位运算符还是非常多的,列出如下:...&:按位与。...|:按位或。 ~:按位非。 ^:按位异或。 <<:左位移运算符。 >>:右位移运算符。 >>>:无符号右移运算符。 除~以 外,其余均为二元运算符,操作的数据只能是整型(长短均可)/字符型。...中的位运算这块就算聊完。
说明 我们常说的是 与运算 只有表达式都为 true 时,才返回 true,否则返回 false(口诀:全真才真,一假则假) 理解误区:&& || 直接返回的是布尔值?...与运算 && 答案是否定的:在与运算符在计算过程中,自左向右执行判断表达式,若当前表达式转为布尔值为false,则返回当前表达式的值否则将会继续执行,直到最后一个表达式,不再进行判断直接返回该表达式的值...简单说 逻辑与是一种短路逻辑,如果左侧表达式为 false,则直接短路返回结果,不再运算右侧表达式。...user && console.log("变量没有赋值")); //返回提示信息“变量没有赋值” 或运算 || 在或运算中执行方式和与运算一致,只是判断false才继续执行直到true或执行到最后一个表达式
,异或的规则是转换成二进制比较,相同为0,不同为1....一个数a与另一个数b异或的结果等于a^b,用结果( a^b)异或a,就会得到b; 上面的结果,我们用代码来验证。代码( a=a^b; b=a^b; a=a^b;)可以转换成二进制计算。...a=a^b; ————-11=01^10 第三步,a(01)异或b(10),等于11。转为十进制a等于3. 最后打印出来,a等于3, b等于2. 第二种:用异或规则计算。 (规则:可以移动。...相同数异或等于0,任何数异或0等于本身) 第一步没变化,直接代入后面的代码进行计算。 第二步中b=a^b的 a^b转化为 a^b ^b ,其中让b^b等于0, a^0等于a。...a=a^b中的 a^b转化 a^b ^a,让 a^a先计算等于0,b ^ 0 等于b赋值给a。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
目录 逻辑与(and) 逻辑或(or) 逻辑非(not) 人生小感悟 ---- 昨天我们学习了 if 嵌套语句的基本语法,并结合实际案例学习基本用法,虽然 if 嵌套语句可以很好的解决我们的问题,但是有时却让代码显得有些复杂了...Python 中的 and 连接条件语句,and 的中文意思就是和(并且)的意思,在编程中有个专业的叫法,称之为逻辑与。...逻辑或(or) 除了以上这种需要同时满足的情况,还有一种情况,那就是或者,比如我们登录的时候,我们一般会有两种的方式,一个是用手机号登录,还有一种是用电子邮箱号登录,两种只要满足一种就可以。...虽然手机号不匹配,但是邮箱号是匹配的,因此一样可以登录成功,这种或者的关系,我们在 Python 中用 or 表示,即逻辑或。...逻辑非(not) 非的意思代表不的意思,在程序中,我们常用来取相反结果用,还是用第一个例子我们来看下,我们除了可以正向来进行验证,还可以反向验证,比如,年龄不在18周岁至70周岁之间即为不符合条件的。
异或 ^ 的几个作用 一、交换两个整数的值而不必用第三个参数 a = 9; b = 11; a=a^b; 1001^1011=0010 b=b^a; 1011^0010=1001 a=a...^b; 0010^1001=1011 a = 11; b = 9; 二、奇偶判断 ^a操作就是将a中的每一位按位逐一进行异或,例如a=4’b1010,则b=1^0^1^0=0,由此可以判断a中为1...1、自然二进制码转换成二进制格雷码 自然二进制码转换成二进制格雷码,其法则是保留自然二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似...2、二进制格雷码转换成自然二进制码 二进制格雷码转换成自然二进制码,其法则是保留格雷码的最高位作为自然二进制码的最高位,而次高位自然二进制码为高位自然二进制码与次高位格雷码相异或,而自然二进制码的其余各位与次高位自然二进制码的求法相类似...这样实现的三分频占空比为1/3或2/3.如果要实现占空比为50%的三分频时钟,可通过待分频的时钟上升沿触发计数器和下降沿触发计数器进行三分频,然后将上升沿和下降沿产生的三分频时钟进行相或预算,即可得到占空比为
与(AND) 2. 或(OR) 3. 非(NOT) 4. 异或(XOR) 5. 同或(XNOR) 6. 与非(NAND) 7....或非(NOR) 计算机中的逻辑运算又被称作为“布尔运算”,分别为:逻辑与运算、逻辑或运算,逻辑非运算,“逻辑异或运算。此外在门电路中还有:同或运算、与非运算、或非运算。共七种。...这七种逻辑运算中,只有 逻辑非运算 是一元逻辑运算(一个运算操作数),其他六种均是二元逻辑运算(两个运算操作数)。 逻辑运算只有两个布尔值: 0 ,表示假值(False)。...同或(XNOR) 逻辑同或运算,运算规则:相同为一,相异为零。与异或运算规则相反。即两个操作数值相同时结果为1,两个操作数不一样时结果为0。...操作数1 操作数2 与运算结果值 最终结果值 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 1 7. 或非(NOR) 逻辑或非运算,运算规则:先或后非(全零为一,有一为零)。
& 与 (都是1时,结果才为1) 表示按位与。 &表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。...二进制与运算规则:1&1=1 1&0=0 0&0=0 | 或 (只要有1,那么就是1) 表示按位或 按位或运算 按位或运算符“|”是双目运算符。...其功能是参与运算的两数各对应的二进位(也就是最后一位)相或。只要对应的二个二进位有一个为1时,结果位就为1。 ^ 异或 (只要一样结果就是0) 按位异或运算符。
此代码由Java架构师必看网-架构君整理 for (int i = 0; i < 10; i++) { if (i == 6) { continue; //...System.out.println(i); } 输出结果为0 1 2 3 4 5 7 8 9;只有6没有输出 3、return (1)return 从当前的方法中退出...(2)return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。...特别注意:返回值为void的方法,从某个判断中跳出,必须用return。
位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。...1.与运算符 与运算符用符号“&”表示,其使用规律如下: 两个操作数中位都为1,结果才为1,否则结果为0,例如下面的程序段。...异或运算符是用符号“^”表示的,其运算规律是: 两个操作数的位中,相同则结果为0,不同则结果为1。...Java中的运算符(操作符) 程序的基本功能是处理数据,任何编程语言都有自己的运算符。因为有了运算符,程序员才写出表达式,实现各种运算操作,实现各种逻辑要求。 ...这里详细介绍一下Java中的运算符。 Java运算符很多,下面按优先顺序列出了各种运算符。 优先级运算符分类结合顺序运算符由高 到 低分隔符左结合.
首先先看下Java中的Collections.sort()排序方法: Collections是一个工具类,sort是其中的静态方法,是用来对List类型进行排序的,它有两种参数形式: public... compare(Student o1, Student o2) { return o1.getId() - o2.getId(); } }); 根据Map中的...key排序map,排序完成后放进linkedHashMap中,也可以放在List中,因为map的话,返回到前端顺序会乱。
Java中提供了一个Character类的静态方法 Character.isDigit(char c) 判断字符c是否是数字字符,如‘1’,‘2’,是则返回true,否则返回false Character.isLowerCase...是否是小写字母字符 Character.isUpperCase(char c) 判断c是否是大写字母字符 两者结合有: Character.isLetterOrDigit(char c) 判断c是否是字母或数字字符
与& 与运算法则:两位同时为“1”,结果才为“1”,否则为0 5 & 1 = 1 或| 或运算法则:两位其中一个为“1”,结果为“1”,否则为0 5| 1 = 5 非 非运算法则:单目运算符 二进制原码...0000 0000 0000 0101 2.再求补码:1000 0000 0000 0000 0000 0000 0000 0110 最高位代表符号位 1 表示负数,0 表示正数 ~5 = -6 异或^...异或运算法则:两位不同,结果为“1”,否则为0 5^1 = 4 左移 左移运算法则:将数值向左移动若干位,用0补足 5<< 1 = 10 右移 右移运算法则:将数值向右移动若干位 5>>1 =
异或运算常用来做数据的简单校验。...Java的实现:(将字节数组两两异或,返回最后异或值) public static byte getXor(byte[] datas){ byte temp=datas[0]; for (int...datas[i]; } return temp; } ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 如果是校验则看异或结果是否为
而第3组表达式,却只在C、C++中通过了,而在Java中却得到了意料之外的结果。...请看下面的截图 在C、C++中得到了想要的结果 而在Java中,却得到了这样的结果 怎么样,是不是很惊讶,在java中,a的值,换给了b,但不管怎么做,a的值都是0,怎么会这样?百思不得其解。...很久以前,当中央处理器只有少数寄存器时,人们发现可以通过利用异或操作符(^)的属性(x ^ y ^ x) == y来避免使用临时变量,这个惯用法曾经在C编程语言中被使用过,并进一步被融入到了C++中,但是它并不保证都可以正确运行...x = tmp1 ^ y ; // 第一个赋值:存储0到x中 从上面的代码可以看出,其实a之所以会为0,是因为a^a造成的,我们知道,两个相同的值异或其值为0....那么在Java中,有没有办法使得不使用中间变量的单个表达式来达到这个目的呢?这是可以的,请看下面的代码。
直接引用传递测试用例: 1.实体类: 1 package com.test.java; 2 3 import java.io.Serializable; 4 5 /** 6...---- 关于序列化 ---- 参考博客,Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程。...字节码可以存储,无状态,而对象在内存中开辟空间,有地址。 由此,可以把对象序列化后反序列化。相当于破碎重组。...前提是:实体类需要实现序列化接口 1.序列化实现对象复制 1 // 用序列化与反序列化实现深克隆 2 public static Object cloneBySer(Object baseObj...return true; 59 } 60 } 61 return false; 62 } 63 64 // 用序列化与反序列化实现深克隆
阅读更多 将Java Document或其它文档集成到Eclipse中 http://www.cjsdn.net/post/view?...Eclipse,比如E:\OpenSource\Eclipse\目录下,以下这个目录以%ECLIPSE_HOME%表示 此时默认的插件是在%ECLIPSE_HOME%\plugins目录下 2、将此附件中的文件解压出来到...%ECLIPSE_HOME%\PlugInsNew\目录下,注意是新的一个目录New 3、到 http://java.sun.com 分别去下载Java Document J2SE 1.4.2 Documentation...%\links\javadoc.link文件 删除%ECLIPSE_HOME%\PlugInsNew\javadoc整个目录及文件 8、重新启动Eclipse即可 9、其它文档集成到Eclipse中的方法类似...,详见plugin.xml与toc.xml文件 附件下载 http://www.cjsdn.net/user/download/159461/javadoc.rar
老鸟请留情,谢谢) 位运算符 描述信息我已经尽量用比较好理解的方式修改,官方的实在是有点儿绕,寄希望下次看到的时候能立马想起来而不是再去理解一次 运算符 含义 描述(位运算,基于二进制表示) 示例 & 按位与...只有参与运算的两位均为1时,结果才为1,否则为0 a与b:$a & $b | 按位或 只有参与运算的两位均为0时,结果才为0,否则为1 a或b:$a | $b ^ 按位异或 只有参与运算的两位不同时,结果才为...1,否则为0 a异或b:$a ^ $b ~ 按位非(取反) 将用二进制表示的操作数中为1的位转为0,为0的为转为1 a非:~$a 中的二进制数据向左移动指定位数,右侧移空的位用...0补齐 a左移4位:$a<<4 >> 右移 将左边的操作数在内存中的二进制数据向右移动指定位数,左侧移空的位用0补齐 a右移4位:$a>>4 图示说明: 定义: A=81(d)=01010001(b)...B=9(d)=00001001(b) 按位与(&) 规则:0&0=0,0&1=0,1&0=0,1&1=1 A&B运算结果:1(d)=00000001(b) 按位或(|) 规则:0|0=0,0|1=1
Java中equals与==区别 ==是运算符而equals是比较方法。
领取专属 10元无门槛券
手把手带您无忧上云