期末模拟卷
覆盖全部模块 1–11:Java 概述、语言基础、OOP、GUI 与事件、Applet、IO、多线程、JDBC、集合与泛型、网络编程、MVC 模式。共 34 题(四选一 + 判断),期中已考模块作回顾、新学模块加重,提交后即时判分,附逐题讲解与各模块正确率分布。
还剩 34 题未作答。可以现在交卷(未作答题按错误计),也可以答完再交。
模块1Java 概述与开发环境(2 题)
Java 源程序首先被编译成下列哪种形式,再由 JVM 执行?
Java 程序的入口方法名是( )
模块2语言基础(结构化语法)(3 题)
int i = 3; int j = ++i + i++; 执行后 j 的值是?
x=5 时,boolean r = (x == 0) || f(x); 中方法 f(x) 会被调用几次?
判断:Java 是纯解释型语言——源代码由 JVM 逐行执行,完全不需要编译。( )
模块3面向对象程序设计(4 题)
把类的字段设为 private 后,外部类读取该字段的正确方式是?
方法重载(Overload)要求( )
button.addActionListener(new ActionListener(){...}) 中这个匿名 {...} 属于( )
Animal a = new Dog(); 后,变量 a 能调用哪些方法?
模块4GUI 与事件(2 题)
BorderLayout 容器中添加组件时若不指定区域,默认放入哪个区域?
事件委托模型中,监听器的 actionPerformed() 方法是由谁调用的?
模块5Applet(legacy)(1 题)
Applet 页面首次加载时,容器调用其生命周期方法的顺序是( )
模块6输入输出流与文件操作(2 题)
FileInputStream.read() 与 BufferedReader.readLine() 的主要区别是?
对象序列化时,下列哪些字段不会被写入字节流?
模块7多线程机制(5 题)
关于用 implements Runnable 方式创建线程,下列说法正确的是?
给实例方法加 synchronized 修饰符意味着( )
下列不属于死锁四个必要条件的是?
售票线程 t 结束后,主线程调用 t.join() 再打印「全部卖完」。join() 的作用是( )
判断:给方法加上 synchronized 后,两个线程就绝不会同时执行任何代码。( )
模块8数据库编程(JDBC)(4 题)
JDBC 释放资源的正确顺序是?
PreparedStatement 能从根本上防止 SQL 注入是因为( )
转账事务中途失败后调用 con.rollback(),结果是( )
JDBC 驱动实现 Driver 接口,程序面向 Connection/Statement 等接口编程、运行期才确定具体实现——这是哪个 OOP 概念的现实应用?
模块9集合框架与泛型(4 题)
下列哪个集合允许元素重复、并保持插入顺序?
Map<String,Integer> m = new HashMap<>(); 从未 put 过键 "Bob",则 m.get("Bob") 返回( )
List<String> list = new ArrayList<String>(); 声明后执行 list.add(123); 会( )
Java 的「类型擦除」指的是( )
模块10网络编程(进阶)(3 题)
Socket 程序中,客户端连上服务器端口后,服务端 serverSocket.accept() 返回的是( )
TCP 是面向连接的协议——传输数据前必须先( )
相比 TCP,UDP 的主要优势是( )
模块11MVC 模式(4 题)
Erase-MVC 的 GameBoard(Model)为什么能 headless(不开窗口)做单元测试?
在 Erase-MVC 中,哪一层是「唯一能触发游戏状态修改」的入口?
Erase-MVC 的 GameBoard 状态变化后,是如何通知 GameView 去重绘的?
若要把 Erase-MVC 的 Swing 窗口换成 HTML5 Web 前端(游戏规则不变),主要需要重写哪一层?