java期末考试试题(3)
一、 选择 1.给定下面的代码片段: 1) String str = null; 2) if ((str != null) && (str.length() > 10)) { 3) System.out.println("more than 10"); 4) } 5) else if ((str != null) & (str.length() < 5)) { 6) System.out.println("less than 5"); 7) } 8) else { System.out.println("end"); } 哪些行会导致错误? A line 1 B line 2 C line 5 D line 8 2.下面哪种注释方法能够支持javadoc命令: A /**...**/ B /*...*/ C // D /**...*/ 3. 欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件: A TextArea B Panel C Applet D Canvas 4. 界面如上题所示。若"Button1"的功能是:点击后弹出一个用于输入的界面,获取用户想要显示的图像文件名,则该界面最好···· 【知识点详解】 1. **Java空指针异常**:在给定的代码片段中,可能存在空指针异常的情况。在第2行的条件检查 `(str != null)` 是正确的,但第5行的 `&` 操作符应当用 `&&` 替换,以确保在检查 `str.length() < 5` 之前先确认 `str` 不为 `null`。如果直接使用 `&`,那么即使 `str` 是 `null`,也会尝试调用 `length()` 方法,导致`NullPointerException`。因此,错误的行是 C line 5。 2. **Java注释与Javadoc**:Javadoc 是一种特殊的注释格式,用于生成 API 文档。它支持 `/** ... */` 格式的注释,因此正确答案是 D /**...*/。 3. **AWT组件的选择**:在Java AWT库中,若要在区域A中显示图像,通常使用 `Canvas` 组件,因为它主要用于绘制图形和图像,而不是文本或复杂的布局。所以,最佳选择是 D Canvas。 4. **对话框的选择**:为了实现“Button1”点击后弹出输入图像文件名的界面,最合适的选项是 A 模式(Modal)Dialog,因为模态对话框会阻止用户在对话框关闭前与主界面交互,确保用户输入图像文件名后再继续操作。 5. **AWT绘图**:在 A 区域的组件中绘制图像,应该覆盖 `paint(Graphics g)` 方法,这是Java AWT中进行定制绘图的标准方法。所以正确答案是 B paint(Graphics g)。 6. **Applet相关知识**:关于Applet的正确说法是 B Applet 必须继承自 java.awt.Applet。Applet是嵌入在HTML页面中的小型Java程序,需要 `extends Applet` 并且需要编译。它们不能直接访问本地文件,除非浏览器允许,并且没有 main 方法,因为它们通过Web服务器启动。 7. **方法重写和继承**:程序运行结果是 C Aclass Bclass。当 `a1` 调用 `go()` 方法时,由于 `Bclass` 重写了 `Aclass` 的 `go()` 方法,所以输出 "Bclass"。 8. **Java线程理解**:关于Java线程的正确说法是 D 以上说法无一正确。每个Java线程由线程栈、程序计数器和共享数据组成;从 `Thread` 类继承可以创建线程,但可能会有单继承的问题;`Thread` 类属于 `java.lang` 包,而不是 `java.util`。 9. **布尔表达式和条件运算**:给定的布尔表达式 `c=(a&&b)&&(!b)` 计算后,`c` 的值为 `false`,因为 `a` 为 `false`,`b` 为 `true`,所以 `a&&b` 为 `false`,然后 `false&&!b` 也为 `false`。接着,根据条件运算符 `?`,`c==false?1:2` 的结果是 `result=1`。所以,最后的结果是 A c=false;result=1。 10. **线程和Runnable接口**:这个程序中,类 `X` 同时扩展了 `Thread` 类并实现了 `Runnable` 接口。`run()` 方法被正确地覆盖了,但是 `main` 方法创建了一个新的 `Thread` 实例,并传入了 `new X()`,这实际上创建了一个 `X` 类的实例,它是一个 `Thread` 也是 `Runnable`。当 `t.start()` 被调用时,`run()` 方法将在新线程上执行。然而,这段代码不会直接打印出 "this is run()",因为主线程不会执行 `run()` 方法,而是新创建的线程执行。 这些知识点涵盖了Java基础,包括空指针异常处理、Javadoc、AWT组件、对话框、绘图、Applet、继承与方法重写、线程以及条件运算和逻辑判断。
- 粉丝: 7
- 资源: 54
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页