SCJP模拟考题140题(310-025)
【知识点详解】 1. **位运算**:在问题1中,涉及到Java中的位运算。`int i = 0xFFFFFFF1;` 是一个32位的整数,`~i` 对i进行按位取反操作。由于i的二进制表示最高位是1(代表负数),取反后仍然是全1,但Java中的int类型有符号,所以结果仍然是一个负数。因此,`int j = ~i;` 后,j的值为-15的十进制表示,选项D正确。 2. **对象比较**:问题2中考察了对象比较。在Java中,用 `==` 比较的是对象的引用,而 `.equals()` 方法用于比较对象的内容。因此,`(i == 1)` 和 `(i == d)` 都是错误的,因为它们比较的是引用而不是内容。`(i.equals(d))` 和 `(d.equals(i))` 分别比较两个对象的内容,由于Integer和Double对象都封装了数值42,所以这两个表达式都会返回True。选项D和E正确。 3. **短路逻辑运算符**:问题3中,`methodA` 函数内部使用了逻辑运算符。`|` 是按位或运算符,`||` 是逻辑或运算符,其中`||`具有短路特性,如果左侧已经满足条件,右侧就不会执行。因此,当`i < 10` 为假时,`methodB(4)`会被执行一次,使得`j`的值增加4,而`methodB(8)`不会执行。最后程序会打印出`j`的值,即4,选项B正确。 4. **异或运算**:问题4中,`6 ^ 3` 表示的是6和3进行异或操作。异或操作符`^`会返回两个操作数中不相同的位的个数。6的二进制表示是`110`,3的二进制表示是`011`,进行异或操作后得到`101`,即十进制的5。所以程序的输出是5,选项5正确。 5. **StringBuffer类**:问题5涉及了`StringBuffer`类。在方法`operate`中,`x.append(y)` 将`b`的内容添加到`a`的末尾,形成"AB"。然后`y = x;`只是将`x`的引用赋值给`y`,并没有改变`y`原来所引用的对象。因此,`main`方法中`System.out.println(a + "," + b);` 打印的将是 "A,AB",因为`b`仍然指向原来的"AB"字符串,选项B正确。 这些题目涵盖了Java的基础知识,包括位运算、对象比较、逻辑运算符、异或运算以及字符串操作。对于准备SCJP考试的考生来说,理解和掌握这些知识点是至关重要的。通过深入学习这些内容,可以提升对Java语言的理解和编程能力。
- fanghongyan12122013-04-02资料太少了
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助