Java中逻辑与,逻辑或,按位与,按位或的区分
Java中逻辑与,逻辑或,按位与,按位或的区分
一直以来,对这样的概念很是模糊,今天总结了一下
先说说逻辑与(&&),逻辑或(||)
他们是短路形式的,举例说明
int i = 0;
System.out.println ( i++ == 1 && i++ == 2);//打印false
System.out.println (i);//打印1
//这里先判断i++是否等于1,因为是右自增,所以这里i++ == 1是错误的,短路就是说不用执行后面的i++ == 2了,
直接返回一个false,所以这就是最后结果为什么打印1的原因了
i = 0;//这里重新赋值,为了下面的例子明了
System.out.println ( ++i == 1 && i++ == 2);//打印false
System.out.println (i);//打印2
//而这里刚好相反,++i是等于1的,所以就执行了后面的i++ == 2,最终的i的值也就打印2了
逻辑与是当两边的运算都为true时,才返回true,否则返回false,如果左边返回false,就直接返回false,不再继续执行右边的代码了
逻辑或是只要有左边的时是true时,就返回true,不再执行右边的代码,但如果左边的值为false,则返回右边运算的结果
按位与& 按位或|
它们和逻辑与,逻辑或是一样的,区别就是非短路运算,即&运算符,即使左边是false,也要执行右边代码;|即使左边是true,也要执行右边代码
还有一点需要指出的区别就是
逻辑与,逻辑或在Java中运算符必须是boolean类型的,而按位与,按位或可以是int类型的,
下面我举例说明他们是如何运行的
System.out.println( 5&3);//(代码1) 打印结果1
System.out.println( 5|3);//(代码2) 打印结果7
System.out.println( 4&2);//(代码3) 打印结果0
System.out.println( 4|2);//(代码4) 打印结果6
二进制码如下:
//5 101 4 100
//3 011 2 010
//& 001 000
//| 110 110
按位与的运算:
看注释3对于注释1和2,会发现除了两位都是1的时候,其余情况下&的结果都是0
按位或的运算:
两个数中都为0的时候结果为0,否则结果为1
分享到:
相关推荐
Java逻辑基础题1-数据类型和运算符-答案 Java 是一种面向对象的编程语言,它的逻辑基础包括数据类型、运算符、控制流语句、方法和数组等。下面是 Java 逻辑基础题1-数据类型和运算符的答案。 一、数据类型 Java ...
2. 对于ASCII值,进行按位或操作,用一个特定的掩码(例如,将二进制表示中的第五位设为0,这对应于ASCII码中大写字母和小写字母之间的差异)。 3. 将得到的新ASCII值转换回字符。 这样,如果我们对 'A' 执行这样的...
在Java中,位运算主要包括按位与(&),按位或(|),按位异或(^),按位非(~),左移(),右移(>>)和无符号右移(>>>). 这些运算符可以在整型变量之间进行,用于直接操作它们的二进制表示。例如,按位与运算符"&"用于两个位...
在Java的Spring框架中,事务管理和Bean管理是两个核心概念,它们在Web应用程序开发中扮演着至关重要的角色。本文将深入解析Spring框架中的混合事务(也称为编程式事务管理)与Bean的区别,以及如何在实际应用中有效...
- **位运算符**:`~`(按位取反)、`&`(按位与)、`|`(按位或)、`^`(按位异或)、`(左移)、`>>`(右移)、`>>>`(无符号右移) #### 10. 控制流语句 Java 提供了多种控制流语句,包括条件语句、循环语句和...
在Java编程语言中,克隆技术是一个重要的概念,它允许我们创建一个对象的精确副本,即一个全新的对象,它具有与原对象相同的属性值。这个副本通常可以独立于原始对象存在和修改。克隆技术在处理那些需要复制对象但又...
《逻辑回归算法在Java溢出攻击检测中的应用》 在当今的网络安全领域,Java溢出攻击作为一种常见的黑客入侵手段,给系统安全带来了严重威胁。为了有效地预防和应对这些攻击,机器学习技术,尤其是逻辑回归算法,被...
- 对于 Java 和 JavaScript 代码,前两位英文字符与数字对应关系如下:A-Z 对应 10-35,空格(在身份证中表示36)。 - 如果身份证号码长度为9位,前两位英文字符的计算方式略有不同,Java 中会分别乘以9和8;而 ...
Java 小知识点 Java 是一门面向对象的...在 Java 的逻辑运算符中,有四类:&&(短路与),&(与),|(或),||(短路或)。&&和&都是表示与,区别是&&只要满足一个条件,后面的条件就不在判断。而&要对所有条件判断。
& 和 && 是 Java 语言中的逻辑与运算符。& 还可以用作位运算符,表示按位与操作。&& 具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式。 类变量和实例变量是 Java 语言中的两种变量类型。类...
回归分析是统计学中的一个分支,主要研究因变量与一个或多个自变量之间的关系。在逻辑回归中,我们尝试找到一个函数,将输入特征映射到0到1之间,这个范围代表了事件发生的概率。 ### 2. 逻辑函数(Sigmoid ...
本项目主要介绍了一个简单的Java管理员登录界面的设计与实现。此界面主要用于数据开发的前台展示,旨在提供一个更加便捷高效的开发环境。通过该登录界面,管理员可以进行身份验证,进而访问后台管理系统。 #### 二...
3.5.1 一元加、减操作符 3.6 自动递增和递减 3.7 关系操作符 3.7.1 测试对象的等价性 3.8 逻辑操作符 3.8.1 短路 3.9 直接常量 3.9.1 指数记数法 3.10 按位操作符 3.11 移位操作符 3.12 三元操作符 if-else 3.13 ...
在Java编程语言中,对字符串中的字符进行a到z排序是一项常见的操作,特别是在处理文本数据或需要对字母顺序排列的场景。本知识点将详细讲解如何实现这个功能。 首先,我们需要理解字符串在Java中的本质。在Java中,...
本文将深入探讨如何在Java中有效地截取包含中文和英文字符的字符串,并解释给出的代码片段背后的逻辑。 ### Java中英文字符串截取的关键点 1. **字符编码的影响**:中文字符在不同的编码方式下占用的字节数不同。...
在这个项目中,Java被用来编写游戏的核心逻辑,包括牌的管理、洗牌、发牌以及判断游戏胜利的条件等。开发者可能使用了集合框架如ArrayList或LinkedList来存储和操作牌,确保游戏规则的正确执行。 JavaFX是Java的一...
- 运算符:讲解各种运算符,包括算术、比较、逻辑和位运算符,以及它们在表达式中的作用。 - 控制流程:学习条件语句(if、switch)和循环语句(for、while),掌握程序的执行流程控制。 2. **面向对象编程** - ...
在Java中,当局部变量与成员变量同名时,可以通过this关键字来区分它们。在构造方法或普通方法中,可以使用this.成员变量名来引用类的成员变量,而不至于与同名的参数混淆。例如,如果方法的参数与类的成员变量同名...
JavaCV 提供了简单的 API,使得开发者可以轻松地将这些库集成到 Java 或 Android 项目中。 2. **OpenCV**: OpenCV(开源计算机视觉库)是一个功能强大的跨平台库,用于实时图像处理、计算机视觉和机器学习任务。...
在Java GUI编程中,事件处理是通过事件监听器机制来实现的,这种机制允许程序注册一个或多个监听器到特定组件上,当组件发生预定义的事件时,监听器会接收到通知。在这种情况下,`Button`组件(按钮)被注册了`...