对象Java8特性-应用-常用的库-数据结构

Java中Object类

2016-10-26  本文已影响24人  清风沐沐

Object类的概述

Object类的方法


 - 它的值等于:getClass().getName() + ‘@’ + Integer.toHexString(hashCode())
 - 由于默认情况下的数据对我们来说没有意义,一般建议重写该方法。a:手动重写b:自动生成
 - 注意:直接输出一个对象的名称,其实就是调用该对象的toString()方法。

- **public boolean equals(Object obj)**
- 指示其他某个对象是否与此对象“相等”。 (**下面有详细讲解**)
- **protected void finalize()** 
  - 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
  - 垃圾回收器不会马上回收垃圾,但是我们可以建议它尽快回收垃圾。(System.gc()方法)
  - 主要针对堆内存。

- **protected Object clone()** 
  - 创建并返回此对象的一个副本,这种克隆机制十分高效,而且二者之间完全隔离。
  - 自定义类实现克隆步骤:
    - 自定义类实现Cloneable接口,这是一个标记性接口,实现这个接口的类的对象可以实现自我克隆。
   - 自定义类中重写Object类的clone()方法。
   - 重写clone()方法时通过super.clone()调用Object类的clone()方法来得到该对象的副本,并返回该副本。

> 这里我们再来详细说一下public boolean equals(Object obj)这个方法

- 这个方法,默认情况下比较的是地址值。比较地址值一般来说意义不大,所以我们要重写该方法。
- 一般都是用来比较对象的成员变量值是否相同。
 那么 **==** 和 **equals**有什么区别呢?
> **==:** 基本类型:比较的就是值是否相同引用类型:比较的就是地址值是否相同**equals:** 引用类型:默认情况下,比较的是地址值。不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同(可以看上面代码的举例)




上一篇 下一篇

猜你喜欢

热点阅读