一、逻辑运算符的使用

  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 中与(&)短路与(&&)以及 或(|)短路或(||)的关系的更多相关文章

  1. 全面解释java中StringBuilder、StringBuffer、String类之间的关系

    StringBuilder.StringBuffer.String类之间的关系 java中String.StringBuffer.StringBuilder是编程中经常使用的字符串类,在上一篇博文中我 ...

  2. java中的ArrayList 、List、LinkedList、Collection关系详解

    一.基础介绍(Set.List.Map) Set(集):集合中的元素不按特定方式排序,并且没有重复对象.他的有些实现类能对集合中的对象按特定方式排序. List(列表):集合中的元素按索引位置排序,可 ...

  3. java中的mvc和三层结构究竟是什么关系

    一件事,要知其然往往很简单,要知其所以然通常不是那么容易,就如最近重新巩固spring的过程中,就觉得还有许多问题其实并不是十分明了. 屈指一算,手头上做过的正式项目也有了四五六七个了,不管用的数据库 ...

  4. java中StringBuilder、StringBuffer、String类之间的关系

    今天在CSDN的高校俱乐部里看到了"Java基础水平測试(英文)".感觉自己学了java这么久,想看下自己的java水平究竟是个什么样.測试结果就不说了,反正是慘不忍睹. 看了一下 ...

  5. Java中的逻辑运算符短路效应

    在Java中逻辑运算符&& 和 ||,它们都存在短路效应. 对于a && b,只有当a和b同时为true时,整个表达式才为true(在java中,首先运算表达式a,如果 ...

  6. java中"与"和"或"

    在java中"与"和"或"都具有短路功能. 关于"或"运算如 if(mc == null || mc.getReceive()==0){ / ...

  7. Java中&、|、&&、||详解

    1.Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧 ...

  8. java中强制类型转换

    在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...

  9. java中的“包”与C#中的“命名空间

    原文地址:http://www.cnblogs.com/lidabo/archive/2012/12/15/2819865.html Package vs. Namespace 我们知道,重用性(re ...

  10. Java中的IO流总结

    Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和Buffe ...

随机推荐

  1. C# 匿名对象(匿名类型)、var、动态类型 dynamic

    本文是要写的下篇<C#反射及优化用法>的前奏,不能算是下一篇文章的基础的基础吧,有兴趣的朋友可以关注一下. 随着C#的发展,该语音内容不断丰富,开发变得更加方便快捷,C# 的锋利尽显无疑. ...

  2. 函数作用域中的this问题

    首先一起回顾下预解析和作用域吧: 预解析: 浏览器每读到一个script标签或function,先不执行任何代码,会先把整个代码快速的浏览一遍,然后从中 挑出 var 和 function两个关键字 ...

  3. JS中的数据类型小结

    首先说说JS数据类型的分类.分为标准型和typeof类型(即控制台打印,浏览器区分) 标准型:基本类型中有:number.string.boolean.undefined.null  复合类型:obj ...

  4. github开源项目学习-front-end-collect

    About 项目地址 项目预览demo(githubio加载较慢) 开源项目fork自:https://github.com/foru17/front-end-collect 此文章是对此开源项目使用 ...

  5. RGB转MIPI CSI芯片方案TC358746XBG

    型号:TC358746XBG功能:RGB888/666/565与MIPI CSI 互转通信方式:IIC/SPI分辨率:720p电源:3.3/1.2V封装形式:BGA72深圳有现货库存,价格有优势,样片 ...

  6. vue引入百度地图api组件封装(根据地址定位)

    Map.vue <template> <div class="Map" :style="{ height: this.height+'px', widt ...

  7. java-多个数的和

    目的:实现多个整数相加. 思路:1.首先要确定用户所需整数的个数n,此部分由用户在键盘上输入. 2.创建一个长度为n的数组. 3.用户从键盘上输入n个整数并判断是否输入正确,正确则存入数组,否则重新输 ...

  8. 为何webpack打包后的文件要放在服务器上才能运行

    为何会有此问: 在刚开始使用vue-cli时还不知道打包后的文件要在服务中才能运行,直接点开后发现页面白板,请教大神后得知要起一个服务才能运行起来,当时我脑子中的逻辑是这样的: 因为:js代码是由浏览 ...

  9. 通信原理课程设计Javaswing技术计算出PCM编码——猎八哥FLY

    package keshe; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; ...

  10. 即时作图新工具—ProcessOn【推荐】…

    www.processon.com 推荐这个在线作图网站:免费登录,云端存储,面向对象,最重要的是提供了丰富模板! 在线软件的人气会越来越高,这是趋势啊~