Object 类位于 java.lang 包中,是所有 Java 类的祖先,Java 中的每个类都由它扩展而来。

  定义Java类时如果没有显示的指明父类,那么就默认继承了 Object 类。例如:

  1. public class Demo{

  2. // ...

  3. }

  实际上是下面代码的简写形式:

  1. public class Demo extends Object{

  2. // ...

  3. }

  在Java中,只有基本类型不是对象,例如数值、字符和布尔型的值都不是对象,所有的数组类型,不管是对象数组还是基本类型数组都是继承自 Object 类。

  Object 类定义了一些有用的方法,由于是根类,这些方法在其他类中都存在,一般是进行了重载或覆盖,实现了各自的具体功能。

  equals() 方法

  Object 类中的 equals() 方法用来检测一个对象是否等价于另外一个对象,语法为:

  public boolean equals(Object obj)

  例如:

  1. obj1.equals(obj2);

  在Java中,数据等价的基本含义是指两个数据的值相等。在通过 equals() 和“==”进行比较的时候,引用类型数据比较的是引用,即内存地址,基本数据类型比较的是值。

  注意:

  · equals()方法只能比较引用类型,“==”可以比较引用类型及基本类型。

  · 当用 equals() 方法进行比较时,对类 File、String、Date 及包装类来说,是比较类型及内容而不考虑引用的是否是同一个实例。

  · 用“==”进行比较时,符号两边的数据类型必须一致(可自动转换的数据类型除外),否则编译出错,而用 equals 方法比较的两个数据只要都是引用类型即可。

  hashCode() 方法

  散列码(hashCode)是按照一定的算法由对象得到的一个数值,散列码没有规律。如果 x 和 y 是不同的对象,x.hashCode() 与 y.hashCode() 基本上不会相同。

  hashCode() 方法主要用来在集合中实现快速查找等操作,也可以用于对象的比较。

  在 Java 中,对 hashCode 的规定如下:

  · 在同一个应用程序执行期间,对同一个对象调用 hashCode(),必须返回相同的整数结果——前提是 equals() 所比较的信息都不曾被改动过。至于同一个应用程序在不同执行期所得的调用结果,无需一致。

  · 如果两个对象被 equals() 方法视为相等,那么对这两个对象调用 hashCode() 必须获得相同的整数结果。

  · 如果两个对象被 equals() 方法视为不相等,那么对这两个对象调用 hashCode() 不必产生不同的整数结果。然而程序员应该意识到,对不同对象产生不同的整数结果,有可能提升hashTable(后面会学到,集合框架中的一个类)的效率。

  简单地说:如果两个对象相同,那么它们的 hashCode 值一定要相同;如果两个对象的 hashCode 值相同,它们并不一定相同。在 Java 规范里面规定,一般是覆盖 equals() 方法应该连带覆盖 hashCode() 方法。

  toString() 方法

  toString() 方法是 Object 类中定义的另一个重要方法,是对象的字符串表现形式,语法为:

  public String toString()

  返回值是 String 类型,用于描述当前对象的有关信息。Object 类中实现的 toString() 方法是返回当前对象的类型和内存地址信息,但在一些子类(如 String、Date 等)中进行了 重写,也可以根据需要在用户自定义类型中重写 toString() 方法,以返回更适用的信息。

  除显式调用对象的 toString() 方法外,在进行 String 与其它类型数据的连接操作时,会自动调用 toString() 方法。

  以上几种方法,在Java中是经常用到的,这里仅作简单介绍,让大家对Object类和其他类有所了解(编辑:雷林鹏 来源:网络)

[Java学习] Java Object类的更多相关文章

  1. Java提高学习之Object类详解(1)

    转自:http://www.importnew.com/10304.html 问:什么是Object类? 答:Object类存储在java.lang包中,是所有java类(Object类除外)的终极父 ...

  2. Java学习笔记二十四:Java中的Object类

    Java中的Object类 一:什么是Object类: Object类是所有类的父类,相当于所有类的老祖宗,如果一个类没有使用extends关键字明确标识继承另外一个类,那么这个类默认继承Object ...

  3. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  4. Java学习:Properties类

    Java学习:Properties类 学习目标 认识properties文件,理解其含义,会正确创建properties文件. 会使用java.util.Properties类来操作propertie ...

  5. java学习一目了然——File类文件处理

    java学习一目了然--File类文件处理 File类(java.io.File) 构造函数: File(String path) File(String parent,String child) F ...

  6. Java常见对象Object类中的个别方法

    Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...

  7. Java学习笔记之---类和对象

    Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { Stri ...

  8. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...

  9. java基础学习总结——Object类

    一.Object类介绍

随机推荐

  1. ServiceStack DotNet Core前期准备

    下载DotNet Core SDK 下载地址:https://dotnet.microsoft.com/download. 安装完成之后通过cmd的命令行进行确认. 官方自带的cmd比较简陋,可以用c ...

  2. animation-play-state

    animation-play-state: css: .play-state{ -webkit-animation:f1 2s 0.5s infinite linear forwards altern ...

  3. MySQL从删库到跑路_高级(四)——存储过程

    作者:天山老妖S 链接:http://blog.51cto.com/9291927 一.存储过程简介 1.存储过程简介 存储过程是一组具有特定功能的SQl语句集组成的可编程的函数,经编译创建并保存在数 ...

  4. 简单理解offsetleft、offsetTop、offsetParent

    先来看看offsetParent返回的是什么值 ele.offsetParent返回的是ele元素最近的并且是定位过(relative,absolute)的父元素,如果没有父元素或者是父元素中没有一个 ...

  5. cocoapod 快速更新,加载

    pod install --verbose --no-repo-update pod update --verbose --no-repo-update

  6. win10锁屏界面无法更新

    win10的锁屏界面都是巨硬公司推送过来的,质量还不错,最近锁屏界面无法更新,解决方案如下: 以管理员身份运行cmd,分别运行如下两个命令 del /f /s /q /a "%userpro ...

  7. Python网络爬虫案例(二)——爬取招聘信息网站

    利用Python,爬取 51job 上面有关于 IT行业 的招聘信息 版权声明:未经博主授权,内容严禁分享转载 案例代码: # __author : "J" # date : 20 ...

  8. zabbix zabbix_agentd.conf详解

    # This is a config file for the Zabbix agent daemon (Unix) # To get more information about Zabbix, v ...

  9. QTQuick控件基础(3)视图

    1.spliteview 2.stackview ApplicationWindow {visible: truewidth: 640height: 480MouseArea{anchors.fill ...

  10. 20145122 《Java程序设计》第十周学习总结

    学习内容总结 网络编程 (1)网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据. (2)程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就是狭义的网络编程范畴. (3 ...