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

相关推荐
qmx_0722 分钟前
HTB-Jerry(tomcat war文件、msfvenom)
java·web安全·网络安全·tomcat
waterHBO30 分钟前
python 爬虫 selenium 笔记
爬虫·python·selenium
为风而战30 分钟前
IIS+Ngnix+Tomcat 部署网站 用IIS实现反向代理
java·tomcat
编程零零七1 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
技术无疆2 小时前
快速开发与维护:探索 AndroidAnnotations
android·java·android studio·android-studio·androidx·代码注入
2401_858286112 小时前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
铁松溜达py3 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
everyStudy3 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
AIAdvocate3 小时前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼4 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt