Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系
一、逻辑运算符的使用
1)逻辑运算符的连接的是布尔表达式,要与位运算符做区分。
2)使用方法:
public class Test {
public static void main(String[] args) {
System.out.println(true & false);//结果为false
System.out.println(true & true);//结果为true
System.out.println(false & false);//结果为false
System.out.println(false & true);//结果为false
/*
System.out.println(true && false);//结果为false
System.out.println(true && true);//结果为true
System.out.println(false && false);//结果为false
System.out.println(false && true);//结果为false
*/
}
}
结论:逻辑与只有当符号两边的表达式都为true时结果才为true
==============================================================
public class Test {
public static void main(String[] args) {
System.out.println(true | false);//结果为true
System.out.println(true | true);//结果为true
System.out.println(false | false);//结果为false
System.out.println(false | true);//结果为true
/*
System.out.println(true || false);//结果为true
System.out.println(true || true);//结果为true
System.out.println(false || false);//结果为false
System.out.println(false || true);//结果为true
*/
}
}
结论:逻辑或只有当符号两边的表达式都为false时结果才为false
==============================================================
二、‘短路与’、‘短路或’
1)‘&、|’与‘&&、||’的区别
单个的逻辑运算符会将左右两个表达式都进行运算得出布尔值,再进行运算。‘短路与’若左边表达式为false则不会对右边的表达式进行判断,
因为结果必为false;‘短路或’若左边表达式结果为true则不会对右边的表达式进行判断,因为结果必为true。
短语的逻辑运算符相当于普通的逻辑运算符效率更高些。
三、例子
public class Test {
public static void main(String[] args) {
int num = 1;
System.out.println(false & num++==1);//即使前面为false,右边的表达式还是会继续执行,即num++
System.out.println(num);//2
System.out.println("=====华丽的分割线=====");
num = 1;
System.out.println(false && num++==1);//左边的表达式为false,右边的表达式将不会执行,即num不会自增
System.out.println(num);//1
}
}
输入的结果为:
false
2
=====华丽的分割线=====
false
1
短路与是同样的道理,大家可以自己编写代码验证一下
==============================================================
Java 中与(&)短路与(&&)以及 或(|)短路或(||)的关系的更多相关文章
- 全面解释java中StringBuilder、StringBuffer、String类之间的关系
StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...
- java中的ArrayList 、List、LinkedList、Collection关系详解
一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可 ...
- java中的mvc和三层结构究竟是什么关系
一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...
- java中StringBuilder、StringBuffer、String类之间的关系
今天在CSDN的高校俱乐部里看到了"Java基础水平測试(英文)".感觉自己学了java这么久,想看下自己的java水平究竟是个什么样.測试结果就不说了,反正是慘不忍睹. 看了一下 ...
- Java中的逻辑运算符短路效应
在Java中逻辑运算符&& 和 ||,它们都存在短路效应. 对于a && b,只有当a和b同时为true时,整个表达式才为true(在java中,首先运算表达式a,如果 ...
- java中"与"和"或"
在java中"与"和"或"都具有短路功能. 关于"或"运算如 if(mc == null || mc.getReceive()==0){ / ...
- Java中&、|、&&、||详解
1.Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧 ...
- java中强制类型转换
在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...
- java中的“包”与C#中的“命名空间
原文地址:http://www.cnblogs.com/lidabo/archive/2012/12/15/2819865.html Package vs. Namespace 我们知道,重用性(re ...
- Java中的IO流总结
Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和Buffe ...
随机推荐
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 今天讲讲如 ...
- Spring整合Redis(spring-data-redis)
历经几天看了大量的博客资料,差不多算是搞定了,目前只是针对单个数据源,集群暂时没研究 maven依赖 <properties> <!-- redis 版本 --> <re ...
- AVAssetWriter 硬编码bug解决
一.需求 直播助手在录屏过程中,产品要求跟随用户手机屏幕旋转,录屏的视频跟随旋转 二.实施方案 目前触手录,iTools PC端均已经实现该功能,并且该功能只适配iOS9和iOS10系统.猜测实现方案 ...
- SpirngMVC入门第一天
SpringMVC第一天 1. 计划 第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a ...
- Django视图,与数据库交互并返回数据
环境:python 2.7.13 数据库:sqlite3(Django自带) 在学习Django的时候,遇到了困难.大概就是取到数据库数据后一直不能转成json数据.最后终于自己琢磨解决了. 要点就 ...
- cobbler实现自动安装
author:JevonWei 版权声明:原创作品 cobbler 配置目录 配置文件目录 /etc/cobbler /etc/cobbler/settings : cobbler 主配置文件 /et ...
- 页面性能优化和高频dom操作
一.DOM操作影响页面性能的核心问题 通过js操作DOM的代价很高,影响页面性能的主要问题有如下几点: 访问和修改DOM元素 修改DOM元素的样式,导致重绘或重排 通过对DOM元素的事件处理,完成与用 ...
- chrome开发工具指南(十三)
模拟传感器:地理定位与加速度计 由于大多数桌面设备都没有 GPS 芯片和加速度计,所以测试它们比较困难.Chrome DevTools 的 Sensors 模拟窗格可以通过模拟常见的移动设备传感器来降 ...
- 如何将ASP.NET-WebApi发布到IIS6.0上(转)
关于"如何将ASP.NET-WebApi发布到IIS6.0上"的这方面的学习,一开始项目组长让我们接触的时候,我的心情是这样的 哇呜.jpg 当时真的是一脸懵逼啊,对于刚接触asp ...
- 49、html基础认识&常用标签(1)
从今天期我们进入前端的学习,先学习html,没有任何需要逻辑需要烧脑,只需要记忆.练习.练习.练习. 一.HTML初识 1.web服务本质 import socket def main(): sock ...