Java中,Object类型是所有类的根类或父类。它位于Java类层次结构的最顶层,所有其他类(无论是直接还是间接)都继承自Object类。因此,Object类型可以表示任何类型的对象。
Object类型的特点
【1】通用性:
由于所有类都继承自Object,Object类型可以引用任何类型的对象。这意味着你可以将任何对象赋值给一个Object类型的变量。
示例
Object obj1 = new String("Hello");
Object obj2 = new Integer(123);
Object obj3 = new ArrayList<>();
【2】方法:
Object类定义了一些基本方法,这些方法在所有对象中都可用。常见的方法包括:
toString():返回对象的字符串表示。
equals(Object obj):比较两个对象是否相等。
hashCode():返回对象的哈希码值。
getClass():返回对象的运行时类。
wait()、notify()、notifyAll():用于线程同步。
【3】类型转换:
由于Object类型是所有对象的通用类型,因此在将Object类型的变量转换为具体类型时,需要进行显式类型转换(强制类型转换)。
示例:
Object obj = new String("Hello");
String str = (String) obj; // 显式类型转换
【4】集合框架中的使用:
在Java泛型引入之前,集合框架(如ArrayList、HashMap等)使用Object类型来存储元素。这意味着集合可以存储任何类型的对象,但需要在使用时进行类型转换。
示例:
ArrayList list = new ArrayList();
list.add("Hello");
list.add(123);
String str = (String) list.get(0); // 需要显式类型转换
总结
Object类型是Java中所有类的根类,可以表示任何类型的对象。它提供了通用的方法和机制,使得所有对象都具有一些基本的行为和属性。在集合框架中,Object类型被广泛用于存储和操作不同类型的对象,但这也带来了类型安全性和性能方面的问题,这些问题在Java泛型引入后得到了改善。