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

    &

    &运算符有两种用法:(1)按位与;(2)逻辑与。

    &&

    &&运算符是短路与运算。如果&&左边的表达式的值是false,右边的表达式会被直接短路掉,不会进行运算。
    很多时候我们可能都需要用&&而不是&,

    例1

    int i = 0;
        if(i == 3  && ++i > 0 ){
        }
        System.out.println("i = " + i);
    
        int j = 0;
        if(j == 3  & ++j > 0 ){
        }
        System.out.println("j = " + j);
    

    输出:
    i = 0
    j = 1

    这是因为&后面的语句执行了,而&&后面的语句没有执行

    例2

    来源:https://www.cnblogs.com/hongten/p/hongten_java_yu.html

    在验证用户登录时判定用户名不是null而且不是空字符串,应当写为:username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的equals比较,否则会产生NullPointerException异常。

    总结

    为什么平时大家都使用的是&&而不是&,我认为是&&出错的可能性更小,而,&容易出错。

  • 相关阅读:
    tty & pty & pts
    PageRank
    How to run a terminal inside of vim?
    vimdiff
    svn's tree conflict
    svn's diff command
    符号表分离
    gcc -D
    Options for Debugging Your Program or GCC
    invoking gdb
  • 原文地址:https://www.cnblogs.com/kristse/p/AndDifferentiate.html
Copyright © 2011-2022 走看看