Java学习小记 day03——Object类

Object类(Object类是所有类的父类)
在这里插入图片描述

  1. getClass 方法
    final 方法、获取对象的运行时 class 对象,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的。

  2. Object类中的toString()方法
    在这里插入图片描述
    hashCode就是一个对象在内存中的地址
    在这里插入图片描述
    Integer.toHexString()将其转换为十六进制
    在这里插入图片描述
    重写toString()方法就可以得到自己想要的输出
    在这里插入图片描述

  3. clone()方法
    返回一个要克隆对象的副本,
    克隆后的对象类型与被克隆对象的类型相同
    object类中
    在这里插入图片描述
    (protected表示该方法只能被其子类调用)
    (native表示该方法不是在该文件中实现,而是在用其他语言(如C和C++)实现的文件中)
    用法:只需要在需要clone的对象上实现(implements)Cloneable接口,然后再在类中加上clone方法,在方法中只需要调用super.clone(),根据自己的需要实现即可

public static void main(String[] args) throws CloneNotSupportedException {
		ObjectTest obj1 = new ObjectTest();
		obj1.name = "zhangsan";
		obj1.age = 18;
		//使用System.out.println打印一个对象时会自动调用该对象的toString()方法
		//该对象的toString方法继承了其父类即Object类的toString()方法,可重写
		System.out.println(obj1.hashCode());
		System.out.println(obj1.name+":"+obj1.age);
		ObjectTest obj2 = obj1.clone();
		System.out.println(obj2.hashCode());
		System.out.println(obj2.name+":"+obj2.age);
	}
	@Override
		public ObjectTest clone() throws CloneNotSupportedException {
			// TODO Auto-generated method stub
			return (ObjectTest)super.clone();
		}		
}

意义:使用克隆方法可大大减少重复的创建对象的代码

该方法只能实现对象的浅拷贝,即指针的拷贝,两个指针都指向同一个对象的地址
深拷贝是对象的拷贝,即在堆内存中创建一个新的对象

  1. finalize()方法,垃圾回收(系统自动)
    System.gc(); //手动调用系统中的垃圾回收器
    垃圾回收是针对堆内存的

  2. equals()方法,计算两个对象的内存地址是否相同,相当于”==”
    该方法用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。
    一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值