java学习:Object类中部分源码

toString

1.源代码

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

源代码上toString()方法的默认实现是:

        类名@对象的内存地址转换为16进制的形式

2.toString的作用:

toString()方法的设计目的是:通过调用这个方法可以将一个"java对象"转换字符串表示形式 

3.Sun公司开发java语言的时候,建议所有子类都重写toString方法,toString返回结果应是一个简明但易于读懂的信息表达式。


equals

1.源代码

    public boolean equals(Object obj) {
        return (this == obj);
    }

2.equals的设计目的:

以后编程的过程当中,都要通过equals方法来判断两个对象是否相等

3.判断两个java对象是否相等不能使用“==“,因为”==“比较的是两个对象的内存地址

4.在Object 类中的equals方法当中,默认使用的是”==“判断两个java对象是否相等,而”==“比较的是两个对象的内存地址,我们应该判断两个java对象内容是否相等。所以需要重写equals方法


String类的toString方法和equals方法

1.String类已经重写了equals方法,比较两个字符串不能使用==,必须使用equals

2.String已经重写了toString方法

3.java中基本数据类型比较相等使用==

4.java中所有的引用数据类型统一使用equals方法来判断是否相等


finalize()方法

1.源代码:

    protected void finalize() throws Throwable { }
}

gc负责调用finalize()方法

2.finalize()方法中只有一个方法体,里面没有代码,而且者个方法是用protected修饰的

3.这个方法不需要程序员手动调试,JVM的垃圾回收器负责调用这个方法。不像equals,toString方法,需要自己写代码调用

4.finalize()方法只需要重写,重写完后会有程序来调用

5.finalize()方法的执行时机:

当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用finalize()方法

6.finalize()方法实际上是SUN公司为java程序员准备的一个时机,垃圾销毁时机。如果希望在对象销毁时执行一段代码的话,这段代码要写到finalize当中

7.java中的垃圾回收器不是轻易启动的,垃圾太少,或者时间没到,种种条件下,有可能启动,有可能不启动


hashCode

1.源代码

    public native int hashCode();

2.这个方法不是抽象方法,带有native关键字,底层调用c++程序

3.hashCode()方法返回的是哈希码:

实际上就是一个java对象的内存地址,经过哈希算法,得出一个值。

所以hashCode()方法的执行结果可以等同看作一个java对象的内存地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值