Java常用API(一)Object

来源:互联网 发布:手机淘宝秒杀的技巧 编辑:程序博客网 时间:2024/05/22 16:00

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

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

常用方法摘要:

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

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

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

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

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

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

@Overridepublic 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进制。

原创粉丝点击