在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|".

  1.1短路运算符:顾名思义,短路运算符具有短路功能.

    |-如果 "&&" 运算符的第一个表达式为false,则第二个表达式就不会执行

    |-如果 "||" 运算符的第一个表达式为true,则第二个表达式就不会执行

  例如: 

public class Test {
public static void main(String[] args) {
int i = 0;
int j = 0;
if (++i > 0 || ++j > 0) {
System.out.println("i的值:" + i);
System.out.println("j的值:" + j);
}
}
}

  因为++i>0为true  所以++j>0将不会被执行.

  输出的结果就是:

i的值:1
j的值:0

  1.2非短路运算符

    非短路运算符不管第一个表达式是否可以得出最后结果,都要对第二个表达式进行判断.

public class Test {
public static void main(String[] args) {
int i = 0;
int j = 0;
if (++i > 0 | ++j > 0) {
System.out.println("i的值:" + i);
System.out.println("j的值:" + j);
}
}
}

    而非短路逻辑运算符的答案是:

i的值:1
j的值:1

  1.3总结

  短路运算符只能用于逻辑表达式内,非短路运算符可用于位表达式和逻辑表达式内。也可以说:短路运算只能操作布尔型的,而非短路运算不仅可以操作布尔型,而且可以操作数值型。

  但是在判断的时候推荐使用短路运算符进行逻辑判断,因为短路运算符在一定程度上可以提高程序运行的效率

Java短路运算符和非短路运算符的更多相关文章

  1. java入门---运算符&逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符

        这篇文章接着上次的来,主要看逻辑运算符&短路逻辑运算符&赋值运算符&条件运算符&instanceof 运算符这五种运算符.     首先来看逻辑运算符.下表列出 ...

  2. day03-Python运维开发基础-(数据类型强转、运算符、逻辑短路、isinstance)

    1. 强制转换成容器数据类型 # ### 强制类型转换 容器类型数据 (str list tuple set ) var1 = "你好世界" var2 = ["陈博文&q ...

  3. Java基础二(变量、运算符)

    1.变量2.运算符 ###01变量概述 * A: 什么是变量? * a: 变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水:你家里的大衣柜是容器,用来装载 ...

  4. Java 基本语法----进制、运算符

    进 制 对于整数,有四种表示方式: 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头.十进制:0-9 ,满 10 进 1. 八进制:0-7 ,满 8 进1. 以数字 0 开头表示.十六进制: ...

  5. java学习笔记(4)运算符

    java中的运算符分为以下几种: 算数运算符 +.-.*./.++.--.% 关系运算符 <.<=.>.>=.==.!= 布尔运算符 &&.||.&.| ...

  6. 027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑“与”运算符

    027 01 Android 零基础入门 01 Java基础语法 03 Java运算符 07 逻辑"与"运算符 本文知识点:Java中的逻辑"与"运算符 逻辑运 ...

  7. Java基础语法01——变量与运算符

    本文是对Java基础语法的第一部分的学习,包括注释:标识符的命名规则与规范:变量的数据类型分类以及转换:以及六种运算符(算术.赋值.比较.逻辑.三元和位运算符).

  8. 028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑“或”运算符

    028 01 Android 零基础入门 01 Java基础语法 03 Java运算符 08 逻辑"或"运算符 本文知识点:Java中的逻辑"或"运算符 逻辑& ...

  9. 第2章 Java基本语法(上): 变量与运算符

    2-1 关键字与保留字 关键字(keyword) 保留字(reserved word) 2-2 标识符(Identifier) 案例 class Test{ public static void ma ...

随机推荐

  1. I2C总线协议详解

    I2C总线定义     I2C(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备.I2C总线产生于在80年代,最初为音 ...

  2. SSD如何设置预留空间OP(Over-Provision)

    Over-Provision操作指南 SSD OP全称是(Over-Provision), 中文名预留空间, 指用户不可操作的容量,大小为SSD实际容量减去用户可用容量.简单来说over-provis ...

  3. 怎么追加byte内容

    public byte[] InsertByte(string dx) { List<byte> temp = new List<byte>(); byte[] b= Enco ...

  4. bitset归结,一个实例

    我是蒟蒻一名,请大佬勿喷. 绝大部分来自https://www.cnblogs.com/magisk/p/8809922.html   ,  可以去大佬博客逛一逛 bitset是C++中类似数组的一种 ...

  5. 深入理解javascript原型和闭包(3)——prototype原型 (转载)

    深入理解javascript原型和闭包(3)——prototype原型   既typeof之后的另一位老朋友! prototype也是我们的老朋友,即使不了解的人,也应该都听过它的大名.如果它还是您的 ...

  6. centos7 安装 gitlab 服务器

    https://www.cnblogs.com/wenwei-blog/p/5861450.html 标签: centos7 git安装 git gitlab 我这里使用的是centos 7 64bi ...

  7. Linux用awk处理文本数据

    awk -F',' -v OFS='\t' 'NR>1{print $1, $4, $6, $7}' demo2.csv | sort -t $'\t' -k 1 -r

  8. 如何用Mybatis分库分表

    分库 在分库的时候 有时候为了方便 一些表需要存放所有库的信息,称为全局库.如:用户表存放所有的用户. 此时分库的思路 数据库分为全局库和业务库,其中业务库又分为N多个库,全局库只放个别表方便开发. ...

  9. 使用批处理发布 QT 的程序

    1. 将 QT Creator 生成的 exe 文件拷贝到一个目录中 :C:\Users\zyy\Desktop\qtrelease 2.新建 bat 文件:qt.bat . 编辑文件,注意替换 QT ...

  10. HTML学习笔记(基础部分)

    一.基本概念 1.HTML:超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言. 2.HTML文档的后缀名:.html 或 .htm 3.标签:由尖括 ...