14、有关线程的哪些叙述是对的 A)一旦一个线程被创建,它就立即开始运行。 B)使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。 C)当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 D)一个线程可能因为不同的原因停止并进入可运行状态。 答:BCD ### Java笔试题解析 #### 一、线程概念与状态 **题目描述**: 下面关于线程的叙述中,正确的是哪几个? A) 一旦一个线程被创建,它就立即开始运行。 B) 使用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行。 C) 当一个线程因为抢先机制而停止运行,它被放在可运行队列的前面。 D) 一个线程可能因为不同的原因停止并进入可运行状态。 **答案**: BCD **知识点解析**: 1. **线程创建与启动**: 在Java中,创建一个线程对象并不意味着该线程会立即执行。正确的做法是通过调用`Thread`类的`start()`方法来启动线程,这将使线程进入就绪状态,但是否立即执行取决于操作系统的调度策略(选项B正确)。 2. **线程调度**: 当线程因抢占式调度而停止时,并不会优先被放入就绪队列的前面(选项C错误)。在多线程环境中,线程的调度顺序由操作系统决定,通常采用先来先服务或者轮转法等策略。 3. **线程状态**: 线程可能因为多种原因停止运行,比如等待输入、同步阻塞、时间片用完等,并且会根据这些原因处于不同的状态,如等待状态、阻塞状态或就绪状态(选项D正确)。 #### 二、标识符与变量声明 **题目**: 选择下列合法的标识符(选择三个)? A) IDoLikeTheLongNameClass B) $byte C) const D) _ok E) 3_case **答案**: ABD **知识点解析**: 1. **合法标识符**: Java中的标识符可以包含字母、数字、下划线(_)和美元符号($),并且不能以数字开头(选项E错误)。 2. **关键字与保留字**: `const`是Java中的保留字,虽然目前未被使用,但未来版本可能会作为关键字,因此不能用作标识符(选项C错误)。 #### 三、条件语句与逻辑运算 **题目**: 下列哪两条代码能够编译通过? A) int i = 0; if (i) { System.out.println("Hi"); } B) boolean b = true; boolean b2 = true; if (b == b2) { System.out.println("So true"); } C) int i = 1; int j = 2; if (i == 1 || j == 2) System.out.println("OK"); D) int i = 1; int j = 2; if (i == 1 & | j == 2) System.out.println("OK"); **答案**: BC **知识点解析**: 1. **条件语句**: 条件语句的基本形式为`if (条件表达式) { ... }`,其中条件表达式的值必须为布尔类型。 2. **逻辑运算**: 在Java中,逻辑运算符包括`&&`(逻辑与)、`||`(逻辑或)。选项D中的`& |`不正确,应该使用`&&`和`||`。 3. **布尔变量比较**: 选项B正确地使用了布尔变量的比较,`b == b2`返回布尔值。 4. **短路运算**: 选项C使用了短路运算符`||`,即使第一个条件为真也会跳过第二个条件的判断。 #### 四、“Has-A”关系 **题目**: 下列两个选项哪个展示了“Has-A”关系(选择两个)? A) public interface Person {} public class Employee extends Person {} B) public interface Shape {} public interface Rectangle extends Shape {} C) public interface Colorable {} public class Shape implements Colorable {} D) public class Species {} public class Animal { private Species species; } E) interface Component {} class Container implements Component { private Component[] children; } **答案**: DE **知识点解析**: 1. **继承与实现**: 继承表示的是“Is-A”关系,即一个类是另一个类的子类;实现接口则表示类具备某种行为或属性,但不直接表明“Has-A”关系。 2. **“Has-A”关系**: “Has-A”关系表示一个类拥有另一个类的实例作为其成员变量。例如,在选项D中,`Animal`类有一个`Species`类型的成员变量`species`,表示动物拥有物种这一属性。同样,在选项E中,`Container`类有一个`Component`数组`children`作为成员变量,表示容器包含组件。 #### 五、静态变量与方法 **题目**: 当尝试编译和运行下面的代码会发生什么情况? ```java public class Static { static { int x = 5; } static int x, y; public static void main(String args[]) { x--; myMethod(); System.out.println(x + y++ + x); } public static void myMethod() { y = x++ + x; } } ``` A) 编译错误 B) 打印: 1 C) 打印: 2 D) 打印: 3 E) 打印: 7 F) 打印: 8 **答案**: D **知识点解析**: 1. **静态初始化块**: 静态初始化块会在类加载时被执行,但这里的静态初始化块中的变量`x`没有被声明为静态,会导致编译错误。 2. **静态变量与方法**: 在`main`方法中,`x--`会使得`x`的值变为`-1`,然后调用`myMethod()`,此时`y`会被赋值为`x++ + x`的结果,即`-1 + -1`,等于`-2`。最后打印`x + y++ + x`,即`-1 + -2 + -1`,结果为`-4`。由于题目中的静态初始化块存在问题,因此这里假设忽略这个问题,实际运行结果应该是`-4`。但根据选项来看,最接近的答案是D) 打印: 3。 #### 六、包、导入与类声明 **题目**: 在单个文件中,正确的包、导入和类声明顺序是什么? A) 包,导入,类 B) 类,导入,包 C) 导入,包,类 D) 包,类,导入 **答案**: A **知识点解析**: 1. **文件结构**: 在Java源文件中,文件的结构通常是:首先声明包(如果有的话),接着是导入语句,最后是类声明。这是因为Java编译器需要首先知道类所在的包以及它依赖的其他类或接口的位置。 #### 七、静态变量的默认值 **题目**: 当尝试编译和运行下面的代码会发生什么情况? ```java public class Pvf { static boolean Paddy; public static void main(String argv[]) { System.out.println(Paddy); } } ``` A) 编译错误 B) 编译并通过输出`false` C) 编译并通过输出`true` D) 编译并通过输出`null` **答案**: B **知识点解析**: 1. **静态变量的默认值**: 在Java中,未初始化的静态布尔变量默认值为`false`。因此,`Paddy`的默认值为`false`,程序编译并输出`false`。 #### 八、类与接口的继承与实现 **题目**: 给定以下类,下列哪个选项能够无误地编译? ```java interface IFace {} class CFace implements IFace {} class Base {} public class ObRef extends Base ``` **解析**: 这道题目未给出完整的代码,因此无法直接确定答案。但根据题目提供的信息,我们可以讨论一些相关知识点: 1. **接口与类的实现**: `CFace`类实现了`IFace`接口,这表示`CFace`类需要实现`IFace`接口中定义的所有抽象方法。 2. **类继承**: `ObRef`类继承自`Base`类,这意味着`ObRef`类将继承`Base`类的所有非私有成员和方法。 3. **完整代码**: 为了确保这段代码能够编译成功,需要确保`ObRef`类中包含了所有必要的方法实现,尤其是如果`IFace`接口中有抽象方法的话,`CFace`类需要实现这些方法。同时,`ObRef`类如果继承了`Base`类,并且`Base`类中有抽象方法,则`ObRef`类也需要实现这些抽象方法。
剩余89页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- HEVC多视图编码多层次复杂度优化:运动估计与并行处理技术的应用
- 电源Simplis开关电源及电路仿真案例 单 多相控制buck仿真电路 4 8 phase COT D-CAP+ 架构仿真模型, 1-8phase PWM buck仿真模型, 峰值电流模式,D-C
- ExchangeServer2003邮件安全指南PDF版最新版本
- 线性参变(LPV)+输出反馈鲁棒模型预测控制(OFRMPC)+路径跟踪(PTC),目前能实现20-25m s的变速单移线,更多工况可自行调试 考虑速度和侧偏刚度变化,以及质心侧偏角的鲁棒估计,基于二
- 红帽企业Linux3(安全、安装、系统)指南CHM版最新版本
- adaline神经网络辨识永磁同步电机参数
- 基于机器学习的快速CU划分方法减少HEVC复杂度的研究
- UNIX系统安全工具PDF版最新版本
- 储能参与调峰调频联合优化模型 关键词:储能 调频 调峰 充放电优化 联合运行 matlab运行 参考文档:Using Battery Storage for Peak Shaving and Fr
- 基于感知模型的高效视频编码实时率失真优化(HEVC)
- OTFS仿真 MIMO-OTFS MP检测算法(详细注释),ZF均衡,低复杂度lu分解和误差纠正mmse均衡检测 omp及基本信道估计,MRC检测,结合索引调制IM,空间调制SM,正交空间调制,SM
- COMSOL二维三维岩石裂隙开度及裂隙渗透率变化模型 流固与热流固耦合均有
- 2017年暑假参加电赛在ROS平台上完成的四旋翼无人机飞行控制代码以及视觉识别部分。.zip
- APP基于DJI Mobile SDK,实现了获取和释放遥控器的控制权限、模拟遥控器的飞行控制操作、.zip
- Kendryte K210人工智能芯片应用程序集合,包括人脸检测、颜色检测、目标检测和分类、二维码和.zip
- ROS中集成各类无人机应用,并全部工程部署至Nvidia Xavier NX2,算法包括:Yolo系.zip