java,每日练习02

ops/2024/9/24 9:19:51/

题目

选自牛客网

1.下列关于Java中类的构造方法的描述,正确的是()

A.构造方法的返回类型为void
B.可以定义一个类而在代码中不写构造方法。
C.在同一个类中定义的重载构造方法不可以相互调用。
D.子类不允许调用父类的构造方法。

正确答案:B 。

A. 构造方法的返回类型为 void ——
这是错误的。构造方法实际上没有返回类型,它的名称与类名相同,并且不返回任何值。你不能像普通函数那样给构造方法指定返回类型。

B. 可以定义一个类而在代码中不写构造方法 —— 这是正确的。如果你没有显式地定义构造方法,Java 编译器会自动为类生成一个默认的无参构造方法。这个默认构造方法没有任何操作。

C. 在同一个类中定义的重载构造方法不可以相互调用 —— 这是错误的。在同一个类中,你可以使用 this 关键字在一个构造方法中调用另一个构造方法,但必须作为第一条语句。

D. 子类不允许调用父类的构造方法 —— 这也是错误的。子类可以通过 super
关键字调用父类的构造方法,并且通常需要在子类构造方法的第一条语句中进行调用,如果子类构造方法没有显式调用父类的构造方法,则默认会调用父类的无参数构造方法。


2.执行下面的程序段,语句3的执行次数为(其中n>1)()

for (i = 0; i <= n-1; i++) // (1)
for (j = n; j > i; j–) // (2)
state; // (3)

A.n(n+2)/2
B.(n-1)(n+2)/2
C.n(n+1)/2
D.(n-1)(n+2)

正确答案:C 为了确定语句3的执行次数,我们需要分析这两个嵌套循环的工作原理。

外部循环(第1行)从0到(n-1)迭代,总共迭代(n)次。

内部循环(第2行)对于每次外部循环的迭代,其迭代次数不同。当外部循环变量(i)取不同的值时,内部循环的起始点和终止点也不同。具体来说:

  • 当(i=0)时,内部循环从(j=n)迭代到(j=1),共迭代(n)次。
  • 当(i=1)时,内部循环从(j=n)迭代到(j=2),共迭代((n-1))次。
  • 当(i=n-1)时,内部循环只迭代一次,即(j=n)。

内部循环对于每个(i)值的迭代次数形成一个等差数列:(n, n-1, n-2, …,
1)。我们需要计算这个数列的总和,这将给出语句3的执行次数。

这对应于选项 C (n(n+1)/2)。

java_56">3.java中关于继承的描述正确的是()

A.一个子类只能继承一个父类
B.子类可以继承父类的构造方法
C.继承具有传递性
D.父类一般具有通用性,子类更具体

正确答案:ACD
在Java中关于继承的描述正确的是:

A. 一个子类只能继承一个父类 —— 这个说法是正确的。Java 不支持多重继承,这意味着一个类只能继承一个父类。

B. 子类可以继承父类的构造方法 —— 这个说法是不正确的。子类不会直接继承父类的构造方法。子类可以通过 super
关键字来调用父类的构造方法,但这不是继承构造方法的行为。

C. 继承具有传递性 —— 这个说法是正确的。如果类 C 继承自类 B,而类 B 继承自类 A,那么类 C 间接地继承了类 A
的特性,这就体现了继承的传递性。

D. 父类一般具有通用性,子类更具体 ——
这个说法是正确的。通常情况下,父类提供了一组通用的功能和属性,而子类则扩展或细化这些功能,使之更加具体化。

4.在Java线程状态转换时,下列转换不可能发生的有()?

A.初始态->运行态
B.就绪态->运行态
C.阻塞态->运行态
D.运行态->就绪态

正确答案:AC
在Java中,线程的状态转换遵循一定的规则。线程的生命周期中包含五种状态:初始态、就绪态、运行态、阻塞态、死亡状态。

A. 初始态 -> 运行态 —— 这个转换是不可能直接发生的。线程从初始态(即刚刚创建但尚未启动的状态)变为运行态,中间需要经过就绪态。也就是说,当线程被创建并调用
start() 方法后,线程进入就绪态,等待CPU分配时间片开始执行,此时线程才可能进入运行态。

B. 就绪态 -> 运行态 —— 这个转换是可能发生的。当线程处于就绪态时,它等待CPU调度,一旦获得CPU时间片,就可以进入运行态。

C. 阻塞态 -> 运行态 —— 这个转换是不可能直接发生的。当线程从阻塞态恢复时,它应该先回到就绪态,然后再由操作系统调度进入运行态。因此,从阻塞态直接跳转到运行态是不符合线程状态转换规则的。

D. 运行态 -> 就绪态 —— 这个转换是可能发生的。当线程正在运行时,如果它的时间片用尽或主动让出CPU(如遇到 yield()方法),它会从运行态变为就绪态,等待下一次被调度。

5.以下代码执行的结果显示是多少()?

java">public class Demo{public static void main(String[] args){System.out.print(getNumber(0));System.out.print(getNumber(1));System.out.print(getNumber(2));System.out.print(getNumber(4));}public static int getNumber(int num){try{int result = 2 / num;return result;}catch (Exception exception){return 0;}finally{if(num == 0){return -1;}if(num == 1){return 1;}}}    
}

A.0110
B.-1110
C.0211
D.-1211

正确答案:B

java">public static int getNumber(int num){try{int result = 2 / num;return result;}catch (Exception exception){return 0;}finally{if(num == 0){return -1;}if(num == 1){return 1;}} }

对于不同的 num 值,我们来分析 getNumber 方法的行为:

  1. num = 0 时:

    • try 块中,尝试执行 2 / num 会导致除以零异常,因此会触发 catch 块。
    • catch 块返回 0
    • finally 块中有一个针对 num == 0 的条件判断,会覆盖 catch 块中的返回值,返回 -1
  2. num = 1 时:

    • try 块中,2 / num 的结果是 2
    • return result 返回 2
    • finally 块中有一个针对 num == 1 的条件判断,会覆盖 try 块中的返回值,返回 1
  3. num = 2 时:

    • try 块中,2 / num 的结果是 1
    • return result 返回 1
    • finally 块中没有匹配的条件,因此返回值不变,仍然是 1
  4. num = 4 时:

    • try 块中,2 / num 的结果是 0
    • return result 返回 0
    • finally 块中没有匹配的条件,因此返回值不变,仍然是 0

综上所述,当分别调用 getNumber(0)getNumber(1)getNumber(2)getNumber(4) 时,返回值分别为 -1110

因此,程序的输出结果是 -1110

正确答案是 B. -1110


http://www.ppmy.cn/ops/93947.html

相关文章

linxu命令diff:比较两个或多个文件的内容差异的工具diff详解

目录 一、概述 二、用法 1、基本语法 2、基本用法 3、常用选项 4、获取帮助 三、输出格式 1、正常格式&#xff08;normal diff&#xff09; 2、上下文格式&#xff08;context diff&#xff09; 3、合并格式&#xff08;unified diff&#xff09; 四、示例…

性能优化之自定义指令实现图片懒加载

1&#xff09;图片懒加载 是常见的用于在页面滚动时动态加载图片&#xff0c;而不是在页面加载时一次性加载所有图片。性能优化必备提高页面加载速度的手段&#xff0c;特别是在包含大量图片的网站上。 图片懒加载的原理&#xff0c;其实就是&#xff0c;当图片出现在视口内时…

【数据结构】顺序表——赋源码(结尾)

目录 1. 线性表 2. 顺序表 2.1 概念与结构 2.2 分类 2.2.1 静态顺序表 2.2.2 动态顺序表 2.3 动态顺序表的实现 正文 1. 线性表 线性表&#xff08; linear list &#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#x…

Linux 内核源码分析---挂载文件系统

挂载描述符 Linux 操作系统的一个文件系统&#xff0c;只有挂载到内存中目录树的一个目录下&#xff0c;进程才能够访问这个文件系统。 每次挂载文件系统&#xff0c;虚拟文件系统就会创建一个挂载描述符&#xff08;mount 结构体&#xff09;。 挂载描述符用来描述文件系统的…

BACnet初学者教程,第三章:什么是 BACnet/IP 网络

第三章&#xff1a;什么是 BACnet/IP 网络 平时调试BACnet协议&#xff0c;一个好用的 BACnet 调试工具和模拟器必不可少&#xff0c;推荐一款&#xff1a; 官网地址&#xff1a;BACnet Explorer BACnet/IP 网络是一个或多个 IP 子网&#xff08;IP 域&#xff09;的集合&#…

ubuntu22.04 安装 ros1

ubuntu22.04 安装 ros1 概要 原先只知道ros1 noetic 只支持到ubuntu20.04。现在系统必须升级到ubuntu22.04。 尝试一 Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys 按照这个教程&#xff0c; echo "deb [trustedyes archamd64] http://deb.repo.autolabor.com.cn …

力扣高频SQL 50题(基础版)第四十四题之626. 换座位

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第四十四题之626. 换座位626. 换座位题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第四十四题之626. 换座位 626. 换座位 题目说明 表: Seat --------------…

Linux伙伴系统的数据结构关系图

一文轻松理解Linux伙伴系统-CSDN博客 基于如上文章&#xff0c;我们对Linux kernel伙伴系统的数据结构进行了一个梳理&#xff0c;请参考如下所示&#xff1a;