V尼熊的java之旅——基本类型与运算篇

& 和 && 的区别:
& 和 && 都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为 true 时,整个运算结果才为 true,否则,只要有一方为 false,则结果为 false。
&& 还具有短路的功能,即如果第一个表达式为 false,则不再计算第二个表达式,例如,对于 if(str != null&& !str.equals(“”)) 表达式,当 str 为 null 时,后面的表达式不会执行,所以不会出现NullPointerException, 如果将 && 改为 & ,则会抛出NullPointerException 异常。 If(x==33 & ++y>0) y 会增长, If(x==33 && ++y>0)不会增长。

& 还可以用作位运算符,当 & 操作符两边的表达式不是 boolean 类型时,& 表示按位与操作,我们通常使用 0x0f 来与一个整数进行 & 运算,来获取该整数的最低 4 个 bit 位,例如,0x31 & 0x0f 的结果为 0x01。

用最有效率的方法算出 2 乘以 8 等於几
2 << 3,因为将一个数左移 n 位,就相当于乘以了 2 的 n 次方,那么,一个数乘以 8 只要将其左移 3 位即可,而位运算 cpu 直接支持的,效率最高,所以,2 乘以 8 等於几的最效率的方法是 2 << 3 。

存在使 i + 1 < i的数吗
答案:存在
解析:如果 i 为 int 型,那么当 i 为 int 能表示的最大整数时, i+1 就溢出变成负数了,此时不就成立了吗。
扩展:存在使 i > j || i <= j 不成立的数吗?
答案:存在
解析:比如 Double.NaN 或 Float.NaN 。

0.6332 的数据类型是()
A. float
B. double
C. Float
D. Double
答案:B
解析:默认为 double 型,如果为 float 型需要加上f显示说明,即 0.6332f。

System.out.println(“5” + 2);的输出结果应该是
A. 52
B. 7
C. 2
D. 5
答案:A
解析:Java 会自动将 2 转换为字符串。

下面的方法,当输入为 2 的时候返回值是多少

 
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}

A. 0
B. 2
C. 4
D. 10
答案:D
解析:注意这里 case 后面没有加 break,所以从case 2开始一直往下运行

猜你喜欢

转载自blog.csdn.net/zw791029369/article/details/52620801