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

相关推荐
报错小能手3 分钟前
ios开发方向——对于实习开发的app(Robopocket)讲解
开发语言·学习·ios·swift
wjs20245 分钟前
Swift 方法
开发语言
计算机安禾10 分钟前
【数据结构与算法】第18篇:数组的压缩存储:对称矩阵、三角矩阵与稀疏矩阵
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵
pedestrian_h13 分钟前
Java单例模式回顾
java·单例模式·设计模式
a8a30213 分钟前
Spring Boot(快速上手)
java·spring boot·后端
华科易迅14 分钟前
MybatisPlus乐观锁
java·开发语言·mybatis
G探险者15 分钟前
如何找到那些慢 SQL
java
迈巴赫车主20 分钟前
错位排序算法
开发语言·数据结构·算法·排序算法
zzb158020 分钟前
Agent记忆与检索
java·人工智能·python·学习·ai
wzl2026121330 分钟前
从0到1搭建私域数据中台——公域引流的数据采集与分析
python·自动化·企业微信