Java 基础知识测试-2

基础知识点题目:

1. &和&&的区别?

2. 最有效率的方法计算 2 × 8 2\times8 2×8.

3. 在没有使用临时变量的情况如何交换两个整数变量的值?

4. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1; 有错吗?

5.float f = 3.4;是否正确?


知识点归纳:

1. 解答:

& 表示两个布尔值同时为真才为真,进行判断时 & 的两边都要进行判断;&& 为短路与逻辑运算符,当 && 的左边的布尔值为假时,不用再判断 && 右边的布尔值真假,便可得出结论该运算的布尔值为 false。

实例如下:

Java 基础知识测试-2_第1张图片
电路问题总结:

  • 对于:& --》不管怎样,都会执行“&”符号左右两边的程序;
  • 对于:&& --》只有当符号“&&”左边程序为真(true)后,才会执行符号“&&”右边的程序。

运算规则:

  • 对于:& --》只要左右两边有一个为 false,则为 false;只有全部都为 true的时候,结果才为 true;
  • 对于:&& --》只要符号左边为 false,则结果为 false;当左边为 true,同时右边也为 true,则结果为 true。

2. 解答:

2 << 3;因为将一个数左移 n 位,就相当与乘以 2 的 n 次方。所以 2 × 8 2\times8 2×8 = = = 2 × 2 2 2\times2^{2} 2×22 = = = 2 3 2^{3} 23 = = = 16 16 16.

示例如下:
Java 基础知识测试-2_第2张图片


3. 解答:

可以利用两个数的相加减进行变量的交换。

如下图:
Java 基础知识测试-2_第3张图片


4. 解答:

  1. 错误,s1 = s1 + 1等号右边式子,s1是short类型,1 是整型,s1会自动转换为int型的1,与1相加后,得到int型的2,要向short s1 = 1 左侧的s1看齐,即需要通过强制类型转换,正确写法为:s1 = (short)(s1+1);
  2. 正确,执行 s1 += 1,其实执行的是 s1 = (short)(s1+1),其中会有一个强制转换的过程。

5、 解答:

不正确;3.4 后面要加上 f,正确形式为 float f = 3.4f;不加上 f 就会默认为 double 型。

示例如下:

Java 基础知识测试-2_第4张图片
解决方案 1:
Java 基础知识测试-2_第5张图片
解决方案 2:
Java 基础知识测试-2_第6张图片

你可能感兴趣的:(JavaSE基础,java,c++,面试,经验分享,程序人生)