一、Object类
- java.lang.Object类是Java语言中的根类,即所有类的父类
- 描述的所有方法子类都可以使用
- 在对象实例化的时候,最终找的父类就是Object
- 如果一个类没有特别指定父类, 那么默认则继承自Object类
- 所有对象(包括数组)都实现这个类的方法
它定义如下方法和属性:
-
equals(Object obj):判断当前对象是否与另一个对象相等。
-
getClass():获取当前对象所属的类的Class对象。
-
hashCode():返回当前对象的哈希码。
-
toString():将当前对象转换为字符串。
-
wait()、notify()、notifyAll():用于线程同步的方法。
-
clone():复制当前对象。
-
finalize():在垃圾回收器回收当前对象之前执行的方法。
toString()方法
返回该对象的字符串形式
toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。
getClass().getName()@Integer.toHexString(hashCode())
由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它
equals()方法
调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。这里的“相同”有默认和自定义两种方式。
1.默认地址比较
如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果必然为false。
2.对象内容比较
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。
二、包装类
包装类是一种用于在Java中将基本数据类型转换为对象的类。Java中的基本数据类型(如int、float、char等)不是对象,不能直接参与面向对象编程,但有时候需要将它们转换为对象,以实现某些操作。
Java的包装类包括以下8个类:
-
Boolean:用于封装boolean类型的值。
-
Byte:用于封装byte类型的值。
-
Short:用于封装short类型的值。
-
Integer:用于封装int类型的值。
-
Long:用于封装long类型的值。
-
Float:用于封装float类型的值。
-
Double:用于封装double类型的值。
-
Character:用于封装char类型的值。
这些包装类提供了一系列方法来操作基本数据类型的值,例如将它们转换为字符串、比较大小、进行算术运算等。同时,它们还提供了一些常量和静态方法,例如MIN_VALUE和MAX_VALUE,用于表示该类型的最小值和最大值。在需要将基本数据类型转换为对象时,可以使用这些包装类来完成转换,例如:
int i = 10;
Integer iObj = Integer.valueOf(i); // 将int类型转换为Integer类型
在Java 5及以后版本中,增加了自动装箱(Autoboxing)和自动拆箱(Unboxing)的功能,可以更方便地进行基本数据类型和包装类之间的转换,例如:
int i = 10;
Integer iObj = i; // 自动装箱
int j = iObj; // 自动拆箱