Java每日一练:不断进步05

目录

  • 题目
    • 1.下列哪种异常是检查型异常,需要在编写程序时声明?
    • [2.下面有关java object默认的基本方法,说法错误的是?](#2.下面有关java object默认的基本方法,说法错误的是?)
      • [A. `equals(Object obj)`](#A. equals(Object obj))
      • [B. `copy()`](#B. copy())
      • [C. `wait()`](#C. wait())
      • [D. `toString()`](#D. toString())
      • 总结
    • 3.对Collection和Collections描述正确的是
      • [A. Collection是java.util下的类,它包含有各种有关集合操作的静态方法](#A. Collection是java.util下的类,它包含有各种有关集合操作的静态方法)
      • [B. Collection是java.util下的接口,它是各种集合结构的父接口](#B. Collection是java.util下的接口,它是各种集合结构的父接口)
      • [C. Collections是java.util下的接口,它是各种集合结构的父接口](#C. Collections是java.util下的接口,它是各种集合结构的父接口)
      • [D. Collections是java.util下的类,它包含有各种有关集合操作的静态方法](#D. Collections是java.util下的类,它包含有各种有关集合操作的静态方法)
    • 4.Java创建对象的说法正确的有()
      • [A. 用new语句创建对象,是最常见的创建对象的方法。](#A. 用new语句创建对象,是最常见的创建对象的方法。)
      • [B. 运用反射手段, 调用 `java.lang.Class` 或者 `java.lang.reflect.Constructor` 类的 `newInstance()` 实例方法。](#B. 运用反射手段, 调用 java.lang.Class 或者 java.lang.reflect.Constructor 类的 newInstance() 实例方法。)
      • [C. 调用对象的 `clone()` 方法。](#C. 调用对象的 clone() 方法。)
      • [D. 运用反序列化手段,调用 `java.io.ObjectInputStream` 对象的 `readObject()` 方法。](#D. 运用反序列化手段,调用 java.io.ObjectInputStream 对象的 readObject() 方法。)

题目

选自牛客网

1.下列哪种异常是检查型异常,需要在编写程序时声明?

A.NullPointerException

B.ClassCastException

C.FileNotFoundException

D.IndexOutOfBoundsException

正确答案:C . FileNotFoundException

在 Java 中,异常分为两大类:运行时异常 (unchecked exceptions)和检查型异常(checkedexceptions)。

运行时异常 (Unchecked Exceptions)

这些异常通常是由编程错误引起的,比如数组越界、空指针引用等。这类异常不需要在方法签名中声明抛出,因为它们通常被认为是应用程序逻辑的一部分,应该由程序员避免发生。常见的运行时异常包括:

  • NullPointerException
  • ClassCastException
  • IndexOutOfBoundsException
  • IllegalArgumentException
  • ArrayStoreException
  • ArithmeticException

检查型异常 (Checked Exceptions)

这些异常是由外部条件导致的,而不是由程序本身的逻辑错误引起的。例如,文件不存在或网络连接失败等情况。这些异常必须在程序中处理,要么捕获并处理,要么在方法签名中声明抛出。常见的检查型异常包括:

  • IOException
  • SQLException
  • ClassNotFoundException
  • FileNotFoundException

分析选项

  • A. NullPointerException:这是一个运行时异常,不需要在方法签名中声明。
  • B. ClassCastException:这也是一个运行时异常,不需要在方法签名中声明。
  • C. FileNotFoundException :这是一个检查型异常,继承自 IOException,需要在方法签名中声明或在方法内部捕获处理。
  • D. IndexOutOfBoundsException:这是一个运行时异常,不需要在方法签名中声明。

因此,正确答案是 C. FileNotFoundException


2.下面有关java object默认的基本方法,说法错误的是?

A.equals(Object obj) 指示某个其他对象是否与此对象"相等"

B.copy() 创建并返回此对象的一个副本

C.wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法

D.toString() 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符"@"和此对象哈希码的无符号十六进制表示组成

正确答案:B

Java 的 Object 类是所有类的基类,它提供了一些基本的方法。以下是这些方法的简要说明:

A. equals(Object obj)

  • 描述 :指示某个其他对象是否与此对象"相等"。默认情况下,equals 方法比较两个对象的引用是否相同。通常我们会重写这个方法来提供更具体的比较逻辑。

B. copy()

  • 描述 :这不是 Object 类提供的默认方法。Object 类并没有提供 copy 方法。通常,如果你需要复制一个对象,你会需要实现 Cloneable 接口并重写 clone 方法,或者手动实现复制逻辑。

C. wait()

  • 描述 :导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。这是 Object 类提供的同步控制方法之一,用于线程间的通信。

D. toString()

  • 描述 :返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符"@"和此对象哈希码的无符号十六进制表示组成。这是 Object 类提供的默认实现。

总结

  • A. equals(Object obj):这是正确的描述。
  • B. copy() :这是错误的描述,因为 Object 类并没有提供 copy 方法。
  • C. wait():这是正确的描述。
  • D. toString():这是正确的描述。

因此,正确答案是 B. copy()


3.对Collection和Collections描述正确的是

A.Collection是java.util下的类,它包含有各种有关集合操作的静态方法

B.Collection是java.util下的接口,它是各种集合结构的父接口

C.Collections是java.util下的接口,它是各种集合结构的父接口

D.Collections是java.util下的类,它包含有各种有关集合操作的静态方法

正确答案:BD

A. Collection是java.util下的类,它包含有各种有关集合操作的静态方法

  • 描述 :这是不正确的。Collection 实际上是一个接口,而不是一个类。它定义了集合的基本行为和方法。

B. Collection是java.util下的接口,它是各种集合结构的父接口

  • 描述 :这是正确的。Collectionjava.util 包中的一个接口,它是所有实现集合的类的共同父接口。它定义了集合的基本行为和方法,如 add, remove, contains,
    size, isEmpty 等。

C. Collections是java.util下的接口,它是各种集合结构的父接口

  • 描述 :这是不正确的。Collections 实际上是一个类,而不是一个接口。它提供了许多静态方法来操作集合,例如排序、填充、查找最大最小元素等。

D. Collections是java.util下的类,它包含有各种有关集合操作的静态方法

  • 描述 :这是正确的。Collectionsjava.util 包中的一个类,它包含了许多静态方法来操作集合,如 sort, fill, max, min, shuffle 等。

因此,正确答案是 BD


4.Java创建对象的说法正确的有()

A.用new语句创建对象,是最常见的创建对象的方法。

B.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。

C.调用对象的clone()方法。

D.运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。

正确答案:ABCD

A. 用new语句创建对象,是最常见的创建对象的方法。

  • 描述 :这是正确的。使用 new 关键字创建对象是最常见也是最直接的方式。例如:

    java 复制代码
     Person person = new Person(); 

B. 运用反射手段, 调用 java.lang.Class 或者 java.lang.reflect.Constructor 类的 newInstance() 实例方法。

  • 描述 :这是正确的。通过反射,你可以动态地创建对象而不需要知道对象的确切类型。例如:

    java 复制代码
     Class<?> clazz = Class.forName("Person");  
      Object obj = clazz.newInstance();  

C. 调用对象的 clone() 方法。

  • 描述 :这是正确的。如果一个类实现了 Cloneable 接口,并且重写了 clone() 方法,那么可以通过调用 clone() 方法来创建一个对象的副本。例如:
java 复制代码
  Person original = new Person();
  Person cloned = original.clone();

D. 运用反序列化手段,调用 java.io.ObjectInputStream 对象的 readObject() 方法。

  • 描述 :这是正确的。如果你有一个实现了 Serializable 接口的对象,你可以通过反序列化来创建该对象的实例。
    例如:
java 复制代码
 ObjectInputStream ois = new ObjectInputStream(new
FileInputStream("person.ser"));  
 Person person = (Person)ois.readObject();  

因此,正确答案是 ABCD

相关推荐
麻花20133 分钟前
C#之WPF的C1FlexGrid空间的行加载事件和列事件变更处理动态加载的枚举值
开发语言·c#·wpf
麻花20139 分钟前
WPF里面的C1FlexGrid表格控件添加RadioButton单选
java·服务器·前端
_黎明15 分钟前
【Swift】字符串和字符
开发语言·ios·swift
做程序员的第一天23 分钟前
在PyTorch中,钩子(hook)是什么?在神经网络中扮演什么角色?
pytorch·python·深度学习
理想不理想v23 分钟前
【经典】webpack和vite的区别?
java·前端·javascript·vue.js·面试
请叫我青哥26 分钟前
第五十二条:谨慎使用重载
java·spring
yyywxk40 分钟前
VSCode 新建 Python 包/模块 Pylance 无法解析
ide·vscode·python
Nerinic43 分钟前
PyTorch基础2
pytorch·python
疯一样的码农1 小时前
Apache Maven简介
java·maven·apache
聊无生1 小时前
JavaSrcipt 函数高级
开发语言·前端·javascript