全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
在 Java 中,若类的字段 password 被 transient 修饰,则该类的对象经序列化写入文件后,password 字段____参与序列化;对该对象进行反序列化恢复时,password 的值为____(填“原值”或“类型默认值”)。
登录后查看答案
已知父类 Animal 中定义了实例方法:protected String describe()。子类 Dog 通过 extends 继承 Animal 并希望重写 describe() 方法。根据方法重写的规则,子类中重写方法的访问权限不能____(填“小于”或“大于”)父类方法的访问权限,即只能使用 protected 或更大的权限;重写方法的参数列表必须与父类方法____(填“相同”或“不同”),返回值类型必须与父类方法返回值类型____(填“兼容”或“无关”)。若子类中声明了一个与父类静态方法签名相同的静态方法,则该行为不属于重写,而是对父类静态方法的____(填“隐藏”或“重写”)。
在 Java 异常体系继承结构中,Throwable 的两个直接子类里,能够进一步细分为受检异常与非受检异常的那个子类名称是 ____。
在 Java 中,关键字 throw 用于在方法体内手动抛出一个具体的异常对象,其后跟的是异常____;而关键字 throws 用于在方法签名后声明该方法可能抛出的异常,其后可跟____个异常类型。现有代码:void read() ___ IOException { if (数据为空) ___ new IOException("数据为空"); },两处空位应依次填入(用文字说明)。
有如下代码:Map<String,Integer> m = new HashMap<>(); m.put("a",1); m.put("b",2); m.put("a",3); List<String> list = new ArrayList<>(m.keySet()); 执行后,m.size() 的值为____,m.get("a") 的值为____,list 中元素个数为____。
在 Java 中执行以下代码: List<String> list = new ArrayList<>(); list.add("A"); list.add("B"); list.add("A"); Map<String, Integer> map = new HashMap<>(); map.put("x", 1); map.put("x", 2); map.put("y", 3); 则 list.size() 的值为____,map.size() 的值为____,map.get("x") 的值为____。
在 Java 的异常体系继承结构中,所有错误与异常的超类是 Throwable,它直接派生出 Error 和 ____ 两个分支;其中 IOException 属于必须捕获或声明抛出的____异常,而 RuntimeException 及其子类(如 NullPointerException)属于非受检异常。
已知父类 P 只定义了构造方法 P(String name){ },未定义无参构造。子类 S extends P 中构造方法写为 S(){ name = "S"; }(未显式调用 super)。编译该子类时会发生什么?若要正确编译,应在 S() 构造方法首行补写语句 ____(用完整 Java 语句表示)。
在 Java 中,用 static 修饰的方法属于____本身,可以不创建对象而直接通过类名调用。已知类 Tool 中定义了静态方法 show(),若在 main 方法中调用它,正确的调用语句是 Tool.____();。但若在 show() 方法内部直接访问本类的非静态成员变量 name,则编译报错,原因是静态方法中缺少____上下文。
某类 App 中定义:static String name = "A"; int score = 0; 以及静态方法 static void init(){ System.out.println(name + score); }。程序中已通过 App a = new App(); 将对象的 score 改为 90。现直接调用 App.init()(未创建其他对象),则输出中 name 的值为____,且该调用能否通过编译(填“能”或“不能”):____。
在 Java 程序中,若定义一个 Student 类,并用它先后创建 s1、s2 两个对象,随后执行 s1.name = "张三"; s2.name = "李四";,则此时 s1.name 的值为____,s2.name 的值为____,这说明同一个类的多个对象其成员变量彼此____(填“独立”或“共享”)。
在 Java 的八种基本数据类型中,设 a 为 char 类型所占的字节数,b 为 double 类型所占的字节数,c 为 byte 类型所占的字节数。将 a 作为百位数字、b 作为十位数字、c 作为个位数字组成一个三位数,则该三位数为____。
某程序中变量 k 的值为 4,执行以下代码: switch (k) { case 3: System.out.print("甲"); break; case 4: System.out.print("乙"); case 5: System.out.print("丙"); break; default: System.out.print("丁"); } 由于 case 4 分支末尾缺少 break,匹配成功后会继续穿透执行后续分支的语句。请写出程序最终输出的内容:____
在 Java 中执行语句 int[] scores = new int[6]; 后,数组 scores 的长度为 ____,其第一个元素 scores[0] 的默认值为 ____,合法下标的最大值是 ____。
在 Java 循环中,break 语句的作用是____整个循环,而 continue 语句只结束____迭代,跳转到循环的条件判断处继续执行下一次迭代。若要直接跳出嵌套的多层循环,可以使用带____的 break 语句实现。
在 Java 中,执行以下语句:int a = -23 / 6; int b = -23 % 6; int c = a * b + a; 则 c 的值为 ____。
Java 的八种基本数据类型中,整数类型有 byte、short、int、long 四种,字符类型是 ____,浮点类型有 float 和 double 两种,布尔类型是 boolean。其中 boolean 类型的值只有 true 和 false 两个,且不能与其他基本类型相互转换。
设有定义 int a[6] = {9, 2, 7, 4, 6, 1};,采用冒泡排序将其按降序排列(共进行 n−1 轮,每轮内层从下标 0 开始依次比较相邻元素,若前一个元素小于后一个元素则交换)。则第一轮排序结束后,共发生交换____次,此时数组内容为____。
已知类 Animal 中定义了方法 eat(),类 Dog 继承 Animal 并重写了 eat(),同时 Dog 中新增了方法 fetch()。执行语句 Animal a = new Dog(); 后,调用 a.eat() 时实际执行的是 ____ 类中的 eat() 方法;若要调用 Dog 特有的 fetch() 方法,必须先将 a 向下转型为 ____ 类型。
在 Java 中,被 static 修饰的成员变量属于____本身,而不属于某个具体对象;随类的加载而被初始化。已知类 Counter 中定义了静态方法 show(),则在该方法内部可以直接通过类名访问静态变量 num,写成____;但不能在其中直接访问非静态成员变量 value,原因是静态方法中没有____上下文。