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异常。

总结

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM