如何寻找Object中常用的方法
1、去源代码中寻找。【麻烦】
2、查阅Java的类库文档。
常用的方法
Object类
toString()方法
(1)作用:通过调用这个方法,可以将一个java对象转换成字符串表示的形式。
(2)建议所有的子类都去重写toString()方法。
public String toString(){
}
(3)输出引用时,会自动调用toString()方法。
equals()方法
(1)作用:判断两个java对象是否相等。【若直接使用“==”,则比较的是两个对象的内存地址】
(2)注意:若不重写,则equals()默认用“==”进行比较,所以多数情况下要重写equals()方法。
public boolean equals(Object obj){
if(obj == null || !(obj instanceof Student))
return false;
if(this == obj)
return true;
Student s = (Student)obj;
return this.no == s.no && this.school.equals(s.school);
}
(3)String类已经重写equals()方法,比较两个字符串是否相等,不能用“==”,一般用equals() ,基本数据类型用‘==’,引用数据类型用equals()方法!
(4)进行重写一定要重写到底。
finalize()方法
(1)这个方法是protected修饰,源码是:
protected void finalize() throws Throwable{
}
(2)这个方法不需要手动调用,JVM的垃圾回收机制负责调用这个方法。
(3)执行时机:当一个Java对象即将被垃圾回收器回收时,垃圾回收器负责调用这个方法。
(4)垃圾销毁时机:如果希望在对象销毁时机执行一段代码的话,这段代码要写到finalize()方法当中。
(5)Java中的垃圾回收机制不是轻易启动的,垃圾太少,或者时间没到,种种条件下,有可能启动,也有可能不启动。
(6)System.gc():建议启动垃圾回收器【只是建议,不一定启动,只是启动的概率变大】
hashCode()方法
(1)源码:
public native int hashCode();
(2)该方法不是抽象方法,带有native,底层调用C++
(3)返回值为哈希值【哈希码】:实际上就是一个java对象的内存地址,经过哈希算法得到的一个值,可以等同看做内存地址。