Java语言基础

package com.java.ceshi;
public class Ceshi{
	public static void main(String args[]){
		int x = 2,y,z;
		boolean a;
		System.out.println((int)a);
        x *= (y = z = 5);
        System.out.println(x);	
        z = 3;
		if(x == (y = z)){
			System.out.println(x);
		}       
        a = (y == z);
        System.out.println(a);
        x = (y & z);
        System.out.println(x);
        a = (y & 0 && z & 0);
        System.out.println(a);
        y = 4;
		x = (y | z);
        System.out.println(x);
	    a = (y |0 || z |0);
        System.out.println(a);		
	}
}
上面的代码会有两个错误,都是因为&&,|| 操作符两边的数据类型不对,其两边数的操作类型必须是boolean型。

& ,|两边的数的类型可以是整型或者Boolean型,他会根据数的类型进行相应的运算
JAVA语言中的&,&&,|,||之间的区别:

           &和&&都可以作为逻辑与的运算符,表示逻辑与(and),当运算符两边表达式结果都为true时,整个运算结果才是true,否则只要有一方为false,则结果都是false。

           &&还有短路功能,如果第一个表达式为false,则不会再计算第二个表达式,eg:对于if(str != null && !str.equals(" "))表达式,当str是null时,后面表达式不会执行,就不会出现NullPointerException,如果把&&改为&,就会出现NullpointerException异常。还有一个列子是if( x == 33 & ++y > 0) y的值会增长,if(x == 33 && ++y > 0) y的值不会增长。

           &还可以做为位运算符,当两边的操作数都不是boolean型时,&表示按位与操作。我们通常会使用0x0f来与一个整数进行按位与操作,得到这个整数的低4bit位。列如0x31 & 0x0f的结果为0x01。

         | 与 || 与上面的& 与 && 相似。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值