学习中一些容易混淆的概念,记录一下,方便自己,也方便他人。
&和&&都是用来做“与”运算的,当运算符两边的表达式都为"true"时,结果才为"true",只要有一方为"false",结果就为false。
在"名称"上,一般把&叫做"逻辑与",&&叫做"短路与",不知道老外有没有更好的"专业"的叫法,其实都是逻辑"与"操作,只是给个名字方便区分。
&&短路"与"的意思是,如果第一个表达式的结果为false,则第二个表达式不再计算。
&还可以做"位运算",当&两边的表达式不是boolean时,表示按位运算。比较经典的面试题有:最高效的做2*8的方法,2<<3;
2在内存中的表示*********************0010,左移3位,************************10000。