Java每日一练:不断进步05

题目

选自牛客网

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 关键字创建对象是最常见也是最直接的方式。例如:
     Person person = new Person(); 
    

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

  • 描述:这是正确的。通过反射,你可以动态地创建对象而不需要知道对象的确切类型。例如:
     Class<?> clazz = Class.forName("Person");  
      Object obj = clazz.newInstance();  
    
    
    

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

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

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

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

因此,正确答案是 ABCD

  • 22
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

布说在见

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值