Object

1.所有类的父类。
Object类提供一个toString方法,所以所有的类都有toString方法
toString()的意思是返回当前对象的字符串表达
通过 System.out.println 打印对象就是打印该对象的toString()返回值

package object;

public class Hero {
    public String name;
    protected float hp;

    @Override
    public String toString() {
        return "Hero{" +
                "name='" + name + '\'' +
                '}';
    }

    public static void main(String[] args) {
        Hero h=new Hero();
        h.name="巴啦啦";
        System.out.println(h.toString());
        System.out.println(h);
    }
}

在这里插入图片描述
finalize()方法
当一个对象没有任何引用指向的时候,它就满足垃圾回收的条件

当它被垃圾回收的时候,它的finalize() 方法就会被调用。

finalize() 不是开发人员主动调用的方法,而是由虚拟机JVM调用的。

package object;

public class Hero1 {
    public  String name;
    protected  float hp;

    @Override
    public String toString() {
        return "Hero1{" +
                "name='" + name + '\'' +
                '}';
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("这个英雄正在被回收");
    }

    public static void main(String[] args) {
        //只有一引用
        Hero1 h;
        for (int i = 0; i <1000000 ; i++) {
            //不断生成新的对象
            //每创建一个对象,前一个对象,就没有引用指向了
            //那些对象,就满足垃圾回收的条件
            //当,垃圾堆积的比较多的时候,就会触发垃圾回收
            //一旦这个对象被回收,它的finalize()方法就会被调用
            h = new Hero1();

        }
    }
}

在这里插入图片描述
equals()
equals() 用于判断两个对象的内容是否相同

假设,当两个英雄的hp相同的时候,我们就认为这两个英雄相同。
该假设是错误的。

package object;

public class Hero2 {
    public String name;
    protected float hp;

    public static void main(String[] args) {
        Hero2 hero2=new Hero2();
        hero2.hp=200;
        Hero2 hero3=new Hero2();
        hero3.hp=200;
        System.out.println(hero2.equals(hero3));
    }

}

在这里插入图片描述

这不是Object的方法,但是用于判断两个对象是否相同
更准确的讲,用于判断两个引用,是否指向了同一个对象。

package object;

public class Hero2 {
    public String name;
    protected float hp;

    public static void main(String[] args) {
        Hero2 hero2=new Hero2();
        hero2.hp=200;
        Hero2 hero3=new Hero2();
        hero3.hp=200;
//        System.out.println(hero2.equals(hero3));
        System.out.println(hero2==hero3);
    }

}

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值