Sun SCJP试题解析与讨论

需积分: 0 31 下载量 201 浏览量 更新于2024-08-02 收藏 338KB DOC 举报
"Sun SCJP题库310-055相关题目及解析" 这部分内容是针对Sun Certified Java Programmer (SCJP)考试的题库,特别是310-055这一部分。SCJP是Oracle认证的一项Java编程资格考试,旨在验证候选人在Java语言基础、语法、类库和面向对象设计方面的知识。以下是对提供的两道题目进行的详细解释: 1. 题目: 给定的代码段中,`methodA` 的返回类型是什么? A. int B. byte C. long D. short E. float F. double 答案:F. double 解析:在这道题中,`methodA` 的计算涉及到不同类型之间的运算。`short x` 除以 `double y` 会将 `x` 自动提升到 `double` 类型,因此除法的结果是 `double` 类型。然后这个结果乘以 `2`(一个 `int` 常量),根据Java的类型提升规则,`int` 乘以 `double` 结果依然是 `double`。因此,`methodA` 的返回类型应该是 `double`。 2. 题目: 在给定的超类和子类中,哪一行代码会导致编译错误? A. public float getNum() {return 4.0f;} B. public void getNum() {} C. public void getNum(double d) {} D. public double getNum(float d) {return 4.0d;} 答案:B. 解析:这道题目考察的是Java中的方法重载(Overloading)和重写(Overriding)。选项A是正确的重写,因为它保持了与超类中 `getNum()` 方法相同的返回类型和参数列表。选项C和D是正确的方法重载,因为它们的参数列表不同。而选项B错误在于它尝试重写 `getNum()` 方法,但改变了返回类型,这在Java中是不允许的。重写时,方法名、参数列表和返回类型必须完全匹配超类中的定义。 3. 题目: 给定的代码片段中,程序的结果是什么? A. The program prints "Finally". B. The program prints nothing. C. The program returns from main with a value of 0. D. The program throws an exception. 答案:A. 解析:这段代码包含一个 `try`-`finally` 块。`try` 语句块仅包含一个 `return` 语句,但 `finally` 块确保始终会被执行,即使在 `try` 块中有 `return`。因此,`finally` 块中的 `System.out.println("Finally")` 将被执行,打印出 "Finally",然后程序才会返回。 通过这些题目,我们可以看出SCJP考试涵盖了Java的基本语法、类型转换、方法的重载和重写以及异常处理等核心概念。准备这个考试通常需要深入理解Java语言的各个方面,包括但不限于类和对象、继承、多态、异常处理、内存管理和I/O流等。