JDK类库的根类:object
1.1、这个老祖宗类中的方法我们需要先研究一下,因为这些方法都是所有子类通用的。任何一个类默认继承object。就算没有直接继承,最终也会间接继承。
1.2、object类当中有哪些常用的方法?
我们去哪里找这些方法呢?
第一种方法:去源代码当中。(但是这种方式比较麻烦,源代码也比较难)
第二种方法:去查阅java的类库的帮助文档。
什么是API?
应用程序编程接口。(Application Program Interface>整个JDK的类库就是一个javase的 API。)
每一个API都会配置一套API帮助文档。
sUN公司提前写好的这套类库就是API。(一般每一份API都对应一份API帮助文档。)
介绍几个方法:
protected object clone ()//负责对象克隆的。(不多做介绍)
int hashCode ( )//获取对象哈希值的一个方法。
boolean equals (object obj)//判断两个对象是否相等
String tostring ()/将对象转换成字符串形式
protected void finalize() //垃圾回收器负责调用的方法(不多做介绍)
大结论:
java中什么类型的数据可以使用"==”判断?
java中基本数据类型比较是否相等,使用"=="
java中什么类型的数据需要使用equals判断?
java中所有的引用数据类型统一使用equals方法来判断是否相等。
tostring ()方法
以后所有类的tostring ()方法是需要重写的。
重写规则:越简单越明了就好。
system.out.println(引用);这里会自动调用"引用”的tostring()方法。
注:string类是SUN写的,tostring方法已经重写了。
equals()方法
以后所有类的equals方法也需要重写,因为object中的equals方法比较的是两个对象的内存地址,我们应该比较内容,所以需要重写。
重写规则:自己定,主要看是什么和什么相等时表示两个对象相等。
基本数据类型比较时用:==
对象和对象比较:调用equals方法
string类是SUN编写的,
所以string类的equals方法重写了。
注:以后判断两个字符串是否相等,最好不要使用=,要调用字符串对象的equals方法。
hashCode方法:
在object中的hashCode方法是怎样的?
public native int hashCode ( ) ;
这个方法不是抽象方法,带有native关键字,底层调用C++程序。
hashCode ()方法返回的是哈希码:
实际上就是一个java对象的内存地址,经过哈希算法,得出的一个值。所以hashcode()方法的执行结果可以等同看做一个java对象的内存地址。