JDK三大特殊类: Object、String、包装类
1、Object 类
- Object 类是Java所有类的默认父类,万物之母,不需要使用 extends 关键字明确写出继承 Object,只要使用 class 关键字声明的类,默认都有一个父类,就是 Object !
- 由于Object类是所有类的父类,因此Object类是参数的最高统一化!! 所有类的对象,都可以通过Object引用进行接收!
- 由于Object类是所有类的父类,则Object类中所有的方法,子类中都有,而且我们可以选择性的覆写其中的方法。
现在我们主要关注一下 Object 类中的对象输出方法: toString - 将任意类的对象调用println方法,实际上就是调用的Object类提供的toString方法进行打印的!
- toString方法打印的是地址!所以若我们想在自己类中输出属性值,而非地址,就可以覆写Object类的toString方法!!


2、Object还可以接收所有引用数据类型的权利(包括数组和接口对象)

3、“==” 和 equals方法
对于基本数据类型来说,“==” 比较的是两个变量的数值是否相等;
int a = 10;
int b = 20;
System.out.println(a == b); // false对于引用数据类型来说,“ == ” 仍然比较的是两个变量的数值,只不过引用变量保存的数值是一个地址! “ == ” 比较的是两个对象的地址是否相等! 所以要想进行对象内部属性值比较是否相等,使用 equals 方法!(Object 类提供的方法)
这是Object类默认提供的 equals方法:当前对象和传入对象obj的地址是否相同,当前对象的引用this和传入obj引用是否指向同一个对象(和==没什么区别);

所以我们在自定义的类中,想要进行当前类的对象属性比较,必须要覆写 equals方法!


解释一下Java中 “ == ” 和 equals方法的区别:(先答共性,再答区别)
- “ == ” 进行的是两个变量数值的比较。 对于基本类型来说,比较的就是具体的数值是否相等;对于引用类型来说,“ == ”比较的是两个引用是否指向同一个对象。
- equals 方法进行的是两个类对象的属性值比较,若类的对象要具体比较属性值是否相等,需要覆写Object类提供的 equals方法。
4、Object类型除了基本数据类型无法处理外,所有引用数据类型都可以通过Object接收!
所以包装类应运而生!
















