全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:在 Java 中,语句“throw new IOException();”写在方法体内表示抛出一个异常对象,而“void f() throws IOException, SQLException”中 throws 可在方法签名后同时声明多个受检异常类型,二者用途不同且不能互换。
登录后查看答案
判断:在 try-catch-finally 结构中,无论 try 块是否发生异常,finally 块中的代码都会在方法真正返回之前被执行,因此常用于释放资源。
判断:设有父类 P 定义了受保护字段 int x = 10,并提供方法 show(){ System.out.println(x); }。子类 S extends P 重写了 show(){ super.show(); System.out.println(this.x); },并在其构造方法中写 x = 20。执行 new S().show() 时,若子类构造首行未显式调用 super(...),且父类存在无参构造,则程序编译失败,因为子类构造必须显式调用父类构造方法。
判断:若父类中定义了 public void run(),某子类中定义了 public static void run(),则该子类方法构成对父类方法的重写。
判断:在 Java 中定义一个 Counter 类,仅含成员变量 count,用 new Counter() 先后创建 c1、c2 两个对象,执行 c1.count = 5 后再执行 c2.count = 10,此时 c1.count 的值变为 10。
判断下列说法的正误:在 Java 中,一个类可以定义多个同名构造方法,只要它们的参数个数或参数类型不完全相同即可;若无任何手写构造方法,编译器会自动提供一个无参构造方法。
判断下列说法的正误:在 Java 中,构造方法可以重载,即同一个类中可以定义多个参数列表不同的构造方法,它们通过参数的差异加以区分,创建对象时由传入的实参决定调用哪一个。
判断题:某类中已有方法 void print(int[] a)。新定义方法 int print(int[] a, int n),能与之构成方法重载;而新定义方法 double print(int[] a),不能与之构成方法重载。上述两处判断均正确。
在 Java 中执行语句 int[] nums = new int[8]; 后,nums.length 的值为 8,其中下标最大的元素是 nums[7]。此外,在访问该数组元素之前,所有元素的默认值均为 0。
判断:在同一个类中,若已定义方法 int find(int[] a, int key),则再定义方法 double find(int[] a, int key) 能与原方法构成方法重载。
某类中有两个同步方法 methodA() 和 methodB(),均用 synchronized 修饰,另有非同步方法 methodC()。线程 t1 调用同一对象的 methodA(),线程 t2 调用同一对象的 methodB(),线程 t3 调用同一对象的 methodC()。判断:t1 与 t2 因锁对象相同而不能同时执行各自的同步方法,但 t3 不受锁限制,可与 t1 或 t2 同时执行该方法。
判断:在 Java 中,线程调用 sleep() 进入休眠时会释放其持有的对象锁,而调用 wait() 时则不会释放锁,且 wait() 可以在任意代码位置直接调用,无需同步环境。
判断:某程序需要复制一张图片文件 photo.jpg 并保证复制后的文件与原文件完全一致。若使用字符流按默认编码逐个字符读取并写出,由于字符流会进行编码与解码转换,可能导致文件数据被破坏,因此处理此类任意二进制文件应选用字节流。
判断题:处理包含中文的文本文件时,若直接使用字节输入流以单个字节为单位逐个读取字符数据,由于一个中文字符通常由多个字节组成,逐字节读取可能把一个字符的多字节编码截断,导致输出乱码;因此处理纯文本内容时通常应优先选用字符流,字节流则更适合处理图片、音频等任意二进制文件。上述说法是否正确?
判断:在 Java 中,先向 Map 中执行 map.put("score", 90),随后再次执行 map.put("score", 85),则该 Map 中会存在两个键为 "score" 的键值对,即同一键可以重复存储多个值。
判断:在 Java 异常体系继承结构中,OutOfMemoryError 属于 Error 的子类,代表严重错误而非异常,程序通常不应试图用 try-catch 捕获并处理它;而 IOException 属于 Exception 体系下的受检异常,编译器强制要求对其进行捕获或声明抛出。因此,凡 Throwable 的直接子类都不允许被 try-catch 捕获处理。
判断:在 Java 中,NullPointerException(空指针异常)和 ArrayIndexOutOfBoundsException(数组越界异常)都属于非受检异常(RuntimeException 的子类),编译器不强制程序员捕获或声明它们;而 IOException 属于受检异常,方法若可能抛出它,则必须在方法签名中用 throws 声明或用 try-catch 捕获,否则编译无法通过。
已知父类 Device 中定义了两个方法:protected double power() 与 public static String type()。某同学编写子类 SmartDevice 继承 Device,声明了 public double power() 和 public static String type()。该同学声称:power() 是对父类方法的重写,且因为访问权限从 protected 改为 public 满足规则;而 type() 由于方法签名相同,也构成对父类静态方法的重写。请判断该同学关于 type() 构成重写的说法是否正确。
判断下列说法的正误:在 Java 中,构造方法既然在创建对象时会被调用,因此可以像普通方法一样声明返回值类型(如返回 int),以便向调用者返回执行结果。
判断:设父类 P 只定义了构造方法 P(int x){ },未定义无参构造。子类 Q extends P 中若构造方法写作 Q(int x){ }(未显式写 super 调用),则该子类代码无法通过编译。