Java常用API(一)Object

Object是所有类的顶级父类 ---- 也是java中唯一没有父类的类

所有的类都是Object的子类 ,所以所有的对象都能用Object接住 ,  所有的对象都可以使用Object中的方法 。 

常用方法摘要:

1. clone() 克隆并产生一个新的对象,新对象的地址与原对象地址不同,但属性值 相同。克隆时需要强制类型转换 , 并抛出 CloneNotSupperException异常 。 

一个类要想被克隆则必须实现Cloneable这个接口,这个接口中没有任何的属性和方法,只是用类标识这个类产生的对象可以被克隆。

2. getClass()  获取当前对象的实际类型 , 而不是声明类型 。 

3. equals(Object 0)     判断两个对象是否一样     ***面试要求手写***

原生的equals方法与 == 作用相同,判断的是 对应的直接值(基本数据类型 -- 值 ,引用数据类型 --- 地址)

在开发中一般重写后用于判断对象中存储的值是否相同

@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Team other = (Team) obj;
		if (i != other.i)
			return false;
		if (str == null) {
			if (other.str != null)
				return false;
		} else if (!str.equals(other.str))
			return false;
		return true;
	}

4.  fanilize() --- 通知垃圾回收器回首对象,但是垃圾回收器不一定执行。即使gc开始回收  , 也只回收当前对象 。 System.gc()通知回收所有垃圾对象 。 

 System.gc() --- 底层就是fanilize,作用相同

5.  hashCode() 根据散列算法计算出一个值 获取对象的哈希码(int类型),计算完成之后会产生一个32为的二进制数字 , 但是打印时会转换为十进制显示。2的32次 --43亿多个值  , 所以一般在同一时期不会产生相同的哈希码 ,相对而言(与程序算法 , 程序运行时环境有关 )哈希码是唯一的 。如果对象还一直不被释放 , 则哈希码不变 。  如果两个对象eruals为true , 则两个对象哈希码一定相同 。  但 哈希码相同的两个对象 ,  不一定相同  。

本地方法 native修饰 底层用C语言实现

重写hashCode方法的时候,当equals值为true时,哈希吗必须一致。反过来不成立6. toString()  当打印一个对象的时候,默认是调用这个对象的toString方法。**重点**

6.  toString() : 用于打印对象 。 当直接打印对象的时候, 实际上已经调用了这个对象的toString()方法 。 Object中的toString()方法打印的是对象的地址 getclass()+"@"+o.toHashString(o.hashCode())//将哈希 吗转换为16进制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值