3.4 小测验

我们通过一个小测验来测试一下你的Java知识,答案见附录A。如果你得分很高,祝贺你!如果你做得不怎么样,也不用失望,只需再阅读相关的部分,然后看看你是否能做得更好。

(1) 下面的代码能够通过编译吗?如果不能,是什么地方有问题?

  1. import java.util.ArrayList;
  2. package com.example.quiz1;
  3. public class Question1 {
  4. }

  a) 包名不对,因为包名不能包含数字。

  b) ArrayList类不在java.util包中。

  c) package语句必须放在import语句前面。

  d) 以上说法都不对,这个文件能够通过编译。

(2) 下面的代码能够通过编译吗?如果不能,是什么地方有问题?

  1. class A { }
  2. class B { }
  3. class C extends A, B {
  4. }

  a) 类名不能只包含一个字母。

  b) 在Java中,一个类不能继承(扩展)多个类。

  c) 在一个Java源代码文件中,不能定义多个类。

  d) 以上说法都不对,这个文件能够通过编译。

(3) 下述代码的哪部分很可能有问题(假设这些代码放在一个有效的方法中)?

  1. String s1 = "String A";
  2. String s2 = "String B";
  3. if (s1 != s2) {
  4. // 其他代码……
  5. }

  a) 程序员很可能想检查字符串的内容,因此应使用方法equals

  b) Java不支持运算符!=

  c) 在没有其他代码的情况下,无法判断这个代码片段是否存在逻辑错误。

  d) 没什么问题,一切正常。

(4) 重写类或接口中的方法时,重写后的方法可随便决定要引发哪些异常吗?

  a) 是。

  b) 否。

(5) 下面的方法被调用时(假设已经将这个方法放到了正确的类中),将向控制台打印什么样的输出?

  1. void testMethod() {
  2. try {
  3. System.out.println("A");
  4. throw new RuntimeException("Error!");
  5. } catch(Exception e) {
  6. System.out.println("C");
  7. return;
  8. } finally {
  9. System.out.println("D");
  10. }
  11. }

  a) A和C。

  b) A和D。

  c) A、D和C。

  d) A、C和D。