搜索
写经验 领红包
 > 育儿

和的区别java(javaamp)

导语:JAVA编程中&和&&的区别

&和&&的区别 java(java amp)

相同点

&和&&都可以作为逻辑与的运算符,表示逻辑 与(and)并且的意思。

不同点

2.1 &&具有短路的功能,而&不具备短路功能。

2.2 当&运算符两边的表达式的结果都为true时,整个运算结果才为true。而&&运算符第一个表达式为false时,则结果为false,不再计算第二个表达式。

考虑如下例子:说明&不具备短路功能,表达式继续执行。

   public static void main(String[] args) {        boolean a = true;        if(a & f1() & f2() ) {            System.out.println(&34;);        }    }    public static boolean f1() {        System.out.println(&34;);        return  false;    }    public static boolean f2() {        System.out.println(&34;);        return  false;    }   输出结果为 1, 2   结论: &不具备短路功能,会继续执行表达式判断。

考虑如下例子,说明&&具备短路功能,表达式不再执行。

public static void main(String[] args) {    boolean a = true;    if(a && f1() && f2() ) {        System.out.println(&34;);    }}public static boolean f1() {    System.out.println(&34;);    return  false;}public static boolean f2() {    System.out.println(&34;);    return  false;}输出结果为1  结论:&&具备短路功能,如果表达式为假,不继续执行下面的表达式判断,会立即返回。

2.3 &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,

考虑下面的例子

public static void main(String[] args) {    // 位与(&):二元运算符,两个为1时结果为1,否则为0    // 1的二进制表示为:     00000001    // 2的二进制表示为:     00000010    // 1&2的二进制计算结果为 00000000  ~~ 换成10进制是 0 所以输出结果为0    int i = 1 & 2;    System.out.printf(&34;+i);}输出结果为0  具体过程看注释

本文内容由快快网络小茜整理编辑!