zoukankan      html  css  js  c++  java
  • 9 &和&&的区别

    &运算符有两种用法

    1 按位与&

    在解释按位与&之前,我们先了解一个知识:程序中的所有数在计算机内存中都是以二进制的形式存储的,位运算就是直接对内存中整数的二进制位进行操作。

    按位与&:是Java中位运算符的一种,它的意思是对二进制进行&运算,只有1&1时结果才是1,其它均为0。

    举例说明

    十进制数 十进制结果 十进制数对应的二进制数
    12   0 0 0 0 1 1 0 0
    5   0 0 0 0 0 1 0 1
    按位与&【1&1为1,否则为0】 4 0 0 0 0 0 1 0 0

    2 逻辑与&

    当符号两边都为true时,结果才为true;

    当符号左边为false时,它依然会执行符号右边的表达式,最终返回false。

    注意:很多时候我们可能需要用的是&&而不是&,比如:username != null && !username.equals(""),如果第一个条件为false,就不能再调用equals方法,要不然会报空指针异常的。

    &&运算符是短路与

    当符号两边都为true时,结果才为true;

    当符号左边为false时,它不会在执行符号右边的表达式,直接返回false。

    /**
     * 逻辑&和&&练习
     */
    public class T {
        public static void main(String[] args) {
    
            boolean f1 = true;
            f1 = false;
            int num1 = 10;
            if(f1 & (num1++ > 0)) {
                System.out.println("true");
            } else {
                System.out.println("false");
            }
            System.out.println(num1);
    
            boolean f2 = true;
            f2 = false;
            int num2 = 10;
            if(f2 && (num2++ > 0)) {
                System.out.println("true");
            } else {
                System.out.println("false");
            }
            System.out.println(num2);
        }
    }

    结果为:

    false

    11

    false

    10

    说明: f1为false,逻辑&依然执行了num1++的操作;f2为false,短路与&&不在执行后边的代码


    Java中运算符的分类

    算术运算符

    赋值运算符

    比较运算符

    逻辑运算符

    位运算符

    三目运算符

  • 相关阅读:
    LeetCode> 989. 数组形式的整数加法
    Java> Java核心卷读书笔记
    npx是干嘛的
    typescript教程
    http Get 发送body数据
    59. 螺旋矩阵 II
    使用静态代理模式实现公用的报表导出功能
    win10更新后 sqlserver客户端连接一段时间后报错 CryptUnprotectData: Win32 错误:-2146893813 (Microsoft.SqlServer.RegSvrEnum)或该项不适用于在指定状态下使用
    Docker Compose-Window
    Docker的容器使用与连接-Window
  • 原文地址:https://www.cnblogs.com/xilichenbokeyuan/p/14150837.html
Copyright © 2011-2022 走看看