Java之&和&&的区别
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:MyEclipse10,java
作者: 刘东标
撰写时间:2019-08-23 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
&运算符有两种用法:(1)按位与;(2)逻辑与。
&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是
true 整个表达式的值才是 true。
&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行
运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应
当写为 username != null &&!username.equals(""),二者的顺序不能交换,更不能用&运算符,因为第一个条件如
果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。注意:逻辑或运算符(|)
和短路或运算符(||)的差别也是如此。
package com.ldb.demo;
public class DemoTwo {//创建类
public static void main(String[] args) {
int a=2;
int b=5;
//声明boolean型变量,用于保存应用逻辑运算符,“&&”后的返回值
boolean result=((a>b)&&(a!=b));
//声明boolean型变量,用于保存应用逻辑运算符,“||”后的返回值
boolean resultTwo=((a>b)||(a!=b));
System.out.println(result);//将变量result输出
System.out.println(resultTwo);//将变量restulTwo输出
}
}
输出结果为:false、true