A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程序猿小哲 中级黑马   /  2015-9-19 15:52  /  763 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

之前书上看到这个问题,没太在意,今天在朋友公司的java基础面试题上面又一次见到,我感觉貌似是个考点,特拿出来与马友分享一二,如不完全,请补充,谢谢!首先&拥有着两层含义,在这里最好都进行解释,&可能是位运算符,也可能是逻辑运算符;而&&是逻辑运算符。
&:位运算符,按位与;
&:逻辑运算符,无论左边结果如何,右边都会参与运算;
&&:逻辑运算符,若左边结果为false,右边不参与运算,直接为false,短路与
补充一下,|与||的区别和上述相似
||:若左边为true,则右边不参与运算,直接为true,短路或

PS:个人觉得这个考点主要还是区分两个都是逻辑运算符的情况下,使用区别。不过多年考试经验来看,多写无害。。。

6 个回复

倒序浏览
楼主不妨举个例子,我想会更加的具体
回复 使用道具 举报
横溢天使 发表于 2015-9-19 16:08
楼主不妨举个例子,我想会更加的具体

嗯,好,举个例子
位运算:3&5
    0011
& 0101
=  0001
所以,3&5=1;
逻辑运算:
if(x!=3 & ++y>0),这时,y会自增;
if(x!=3 && ++y>0),这时,y不会增长
回复 使用道具 举报
谢谢楼主
回复 使用道具 举报

呵呵,一起学习!!!
回复 使用道具 举报
学习学习。。。。。。。。。。。
回复 使用道具 举报
marcojam 来自手机 中级黑马 2015-9-19 21:45:17
7#
几年前考二级c的时候就考过这道题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马