java 学习记录7——

1

Object类中常见方法

(1)哪找

源代码当中,java的类库当中的帮助文档

(2)API

应用程序编程接口

(3)哪几个方法(部分)

  • protected Object clone()//负责对象克隆
  • int hashCode()//获取对象哈希值的一个方法
  • Boolean equals(Object obj)//判断两个对象是否相等
  • String toString()//将对象转化成字符串形式
  • protected void finalize()//垃圾回收器负责调用方法

2

object 类中toSting()方法

(1)源代码长什么样?

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

(2)源代码toString()的默认实现

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

(3)

toString的设计目的:通过调用这个方法可以将一个“java对象”转换成“字符串形式”

简洁的,详实的,易阅读的

(4)

输出引用的时候,会自动调用该引用的toSting()

System.out.println(sl);

3

object中的equals方法

(1)方法equals的源代码(默认代码实现)

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

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

(3)辅助理解示例:

public class Text {//测试

public static void main(String[] args) {
    Mytime t3=new Mytime();//创建对象
    t3.name="zansan";
    Mytime t4=new Mytime("zansi");
    Mytime t5=new Mytime("zansan");
    System.out.println(t3.equals(t4));//false
    System.out.println(t3.equals(t5));//true
}

}
class Mytime{//定义我的一个类
    String name;
    public Mytime(){}
    public Mytime(String name){
        this.name=name;
    }
    public boolean equals(Object obj){
        String name1 = this.name;//获取第一个
        if(obj instanceof Mytime){//获取第二个
            Mytime t=(Mytime) obj;
            String name2=t.name;
            if(name1==name2){
                return true;
            }
        }
        return false;
    }
}
//高级版,摘抄   
 public boolean equals(Object o){
        if(this==o)return true;
        if(o==null||getClass()!=o.getClass())return false;
        Mytime m1=(Mytime) o;
        return name==m1.name;
    }

(4)String类

已经重写了equals方法,比较两个字符串不能使用==,必须使用equals,equals是通用的

已经重写了toString方法

4

object中的finalize()方法

(1)在object类中的源代码

    protected void finalize() throws Throwable{}

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

(3)执行时机:

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

(4)观察对象销毁时机

(5)静态代码段的作用:

static{}

在类加载的时候执行,并且只执行一次。

5

hashCode方法

(1)在Object中的hashCode方法

public native int hashCode();

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

(2)hashCode方法返回值是哈希码

实际Java对象的一个内存地址,经过哈希算法,得出的一个值。执行结果约等于内存地址

(3)辅助理解

    public static void main(String[] args) {
        Object o=new Object();
        int hashCodeValue=o.hashCode();
        //对象内存地址经过哈希算法转换的一个数字。等同于内存地址
        System.out.println(hashCodeValue);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小黑的尾巴呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值