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中运算符的分类

    算术运算符

    赋值运算符

    比较运算符

    逻辑运算符

    位运算符

    三目运算符

  • 相关阅读:
    uwsgi
    protobuf c++ API
    memcached 第二篇----安装使用
    ice grid配置使用第二篇------实际使用
    ICE BOX 配置,使用----第一篇
    可视化资料收集
    Protocol Buffers
    ice grid 完整部署过程
    django组件之ajax
    关于Django在写小项目的一些小注意事项
  • 原文地址:https://www.cnblogs.com/xilichenbokeyuan/p/14150837.html
Copyright © 2011-2022 走看看