千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > &和&&的区别在面试的时候该怎么答

&和&&的区别在面试的时候该怎么答

来源:千锋教育
发布人:qyf
时间: 2022-06-07 17:40:00 1654594800

java培训

  回答这个问题方法:

  先说两者的共同点,再说出&&和&的特殊之处,并列举一些经典的例子来表明自己理解透彻深入、实际经验丰富。

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

  不同点:

  1、&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,

  如果将&&改为&,那么俩个表达式都会执行,不管第一个表达式是否为false。

  回答到这里是一般人做法,那么我们如果是面试大厂,那么你就需要在加上,它的好处

  比如内存优化,代码优化,你都可以衍生点,如果这个是在一个循环语句中套着一个if判断,如果是安50次循环来计算,那么他少执行了50次判断,这样回答比较完美了。

  2、&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位。(同样的到这里一般人回答就结束了)

  那么我们要说说什么位运算,这样第一可以说明我们是真的理解这个题不是说在背面试。

  第二说明我们有专研的精神,位运算大家自己根据自身情况来说。

  二、代码

  例如,对于if(str != null && !str.equals(“”))表达式,当str为null时,后面的表达式不会执行,所以不会出现NullPointerException。

  如果将&&改为&,则会抛出NullPointerException异常。if(x==33 & ++y>0) y会增长,if(x==33 && ++y>0)不会增长,说明

  更多关于“Java培训”的问题,欢迎咨询千锋教育在线名师。千锋已有十余年的培训经验,课程大纲更科学更专业,有针对零基础的就业班,有针对想提升技术的好程序员班,高品质课程助理你实现java程序员梦想。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT