Java 面向对象 · 交互课程

期末模拟卷

覆盖全部模块 1–11:Java 概述、语言基础、OOP、GUI 与事件、Applet、IO、多线程、JDBC、集合与泛型、网络编程、MVC 模式。共 34 题(四选一 + 判断),期中已考模块作回顾、新学模块加重,提交后即时判分,附逐题讲解与各模块正确率分布。

已作答
0/34

还剩 34 题未作答。可以现在交卷(未作答题按错误计),也可以答完再交。

模块1Java 概述与开发环境(2 题)

Q1

Java 源程序首先被编译成下列哪种形式,再由 JVM 执行?

Q2

Java 程序的入口方法名是( )

模块2语言基础(结构化语法)(3 题)

Q3

int i = 3; int j = ++i + i++; 执行后 j 的值是?

Q4

x=5 时,boolean r = (x == 0) || f(x); 中方法 f(x) 会被调用几次?

Q5

判断:Java 是纯解释型语言——源代码由 JVM 逐行执行,完全不需要编译。( )

模块3面向对象程序设计(4 题)

Q6

把类的字段设为 private 后,外部类读取该字段的正确方式是?

Q7

方法重载(Overload)要求( )

Q8

button.addActionListener(new ActionListener(){...}) 中这个匿名 {...} 属于( )

Q9

Animal a = new Dog(); 后,变量 a 能调用哪些方法?

模块4GUI 与事件(2 题)

Q10

BorderLayout 容器中添加组件时若不指定区域,默认放入哪个区域?

Q11

事件委托模型中,监听器的 actionPerformed() 方法是由谁调用的?

模块5Applet(legacy)(1 题)

Q12

Applet 页面首次加载时,容器调用其生命周期方法的顺序是( )

模块6输入输出流与文件操作(2 题)

Q13

FileInputStream.read() 与 BufferedReader.readLine() 的主要区别是?

Q14

对象序列化时,下列哪些字段不会被写入字节流?

模块7多线程机制(5 题)

Q15

关于用 implements Runnable 方式创建线程,下列说法正确的是?

Q16

给实例方法加 synchronized 修饰符意味着( )

Q17

下列不属于死锁四个必要条件的是?

Q18

售票线程 t 结束后,主线程调用 t.join() 再打印「全部卖完」。join() 的作用是( )

Q19

判断:给方法加上 synchronized 后,两个线程就绝不会同时执行任何代码。( )

模块8数据库编程(JDBC)(4 题)

Q20

JDBC 释放资源的正确顺序是?

Q21

PreparedStatement 能从根本上防止 SQL 注入是因为( )

Q22

转账事务中途失败后调用 con.rollback(),结果是( )

Q23

JDBC 驱动实现 Driver 接口,程序面向 Connection/Statement 等接口编程、运行期才确定具体实现——这是哪个 OOP 概念的现实应用?

模块9集合框架与泛型(4 题)

Q24

下列哪个集合允许元素重复、并保持插入顺序?

Q25

Map<String,Integer> m = new HashMap<>(); 从未 put 过键 "Bob",则 m.get("Bob") 返回( )

Q26

List<String> list = new ArrayList<String>(); 声明后执行 list.add(123); 会( )

Q27

Java 的「类型擦除」指的是( )

模块10网络编程(进阶)(3 题)

Q28

Socket 程序中,客户端连上服务器端口后,服务端 serverSocket.accept() 返回的是( )

Q29

TCP 是面向连接的协议——传输数据前必须先( )

Q30

相比 TCP,UDP 的主要优势是( )

模块11MVC 模式(4 题)

Q31

Erase-MVC 的 GameBoard(Model)为什么能 headless(不开窗口)做单元测试?

Q32

在 Erase-MVC 中,哪一层是「唯一能触发游戏状态修改」的入口?

Q33

Erase-MVC 的 GameBoard 状态变化后,是如何通知 GameView 去重绘的?

Q34

若要把 Erase-MVC 的 Swing 窗口换成 HTML5 Web 前端(游戏规则不变),主要需要重写哪一层?