`
eils2000
  • 浏览: 50392 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Object

    博客分类:
  • j2se
阅读更多

        单根继承结构中的所有对象都具有一个共用接口,保证所有对象都具备某些功能,单根继承结构和在堆上创建所有对  象极大地简化了参数传递,也是垃圾回收器的实现变得容易很多,垃圾回收器可以给所有对象发送恰当的消息。

 

public native int hashCode();

 

返回该对象的哈希码值。支持该方法是为哈希表提供一些优点,例如,java.util.Hashtable 提供的哈希表。

hashCode 的常规协定是:

  • 在 Java 应用程序执行期间,在同一对象上多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是对象上 equals 比较中所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
  • 如果根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用 hashCode 方法都必须生成相同的整数结果。
  • 以下情况 是必需的:如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么在两个对象中的任一对象上调用 hashCode 方法必定会生成不同的整数结果。但是,程序员应该知道,为不相等的对象生成不同整数结果可以提高哈希表的性能。

实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。(这一般是通过将该对象的内部地址转换成一个整数来实现的,但是 JavaTM 编程语言不需要这种实现技巧。)

 

 

public boolean equals(Object obj) {
	return (this == obj);
    }
 
指示某个其他对象是否与此对象“相等”。

equals 方法在非空对象引用上实现相等关系:

  • 自反性 :对于任何非空引用值 xx.equals(x) 都应返回 true
  • 对称性 :对于任何非空引用值 xy ,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true
  • 传递性 :对于任何非空引用值 xyz ,如果 x.equals(y) 返回 true ,并且 y.equals(z) 返回 true ,那么 x.equals(z) 应返回 true
  • 一致性 :对于任何非空引用值 xy ,多次调用 x.equals(y) 始终返回 true 或始终返回 false ,前提是对象上 equals 比较中所用的信息没有被修改。
  • 对于任何非空引用值 xx.equals(null) 都应返回 false

Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 xy ,当且仅当 xy 引用同一个对象时,此方法才返回 truex == y 具有值 true )。

注意:当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

 

protected native Object clone() throws CloneNotSupportedException;

public String toString() {
	return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
 

 

 

 
分享到:
评论

相关推荐

    Object-Cios苹果app开发入门object-c例子demo14个实例 一般编程问题

    【Object-C】ios苹果app开发入门object-c例子demo14个实例 一般编程问题 【实例简介】 ios苹果app开发入门,object-c,例子,demo,14个实例 初学者难得的学习实例 【实例截图】 【核心代码】 归档 ├── Air...

    Object Pascal中文手册(清晰非扫描版)

    Object Pascal是一种高级编译语言,以严格的强类型特性著称,这意味着在Object Pascal中,数据类型会被严格检查。这种语言支持结构化编程和面向对象编程,其代码具备很好的易读性,并且编译速度快。由于支持使用多个...

    Delphi json superobject 支持XE10.3

    在Delphi编程环境中,SuperObject是一个非常流行的JSON库,它为开发者提供了高效、灵活的JSON解析和序列化功能。在Delphi XE10.3版本中,SuperObject的兼容性和支持是至关重要的,因为JSON作为一种轻量级的数据交换...

    object标签遮罩问题

    ### Object标签遮罩问题解析及解决方案 #### 一、Object标签概述 在Web开发中,`<object>` 标签是一种非常重要的元素,主要用于在HTML文档中嵌入多媒体内容,如图像、音频、视频、Java Applets、ActiveX 控件、PDF...

    Android 三方数据库ObjectBox使用

    为了解决这些问题,开发者们引入了第三方数据库,ObjectBox便是其中的一款优秀选择。ObjectBox是一款专门为移动设备优化的关系型数据库,它以其高性能、易用性以及对对象持久化的支持而受到广泛欢迎。 ObjectBox的...

    delphi7-json-superobject

    Delphi 7 JSON SuperObject 深度解析 在 Delphi 开发环境中,处理 JSON 数据是一项常见的任务。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其易读易写、机器易于解析和生成的特点,被广泛...

    Java Object类认识

    在Java编程语言中,`Object`类是所有类的根,每个自定义类如果没有明确指定父类,都默认继承自`Object`。因此,对`Object`类的理解是每个Java开发者的基本功。本文将深入探讨`Object`类,以及其核心方法`equals()`与...

    Visual Object Net++

    《Visual Object Net++:探索Petri网建模与仿真》 Visual Object Net++是一款专为初学者设计的模拟软件,其主要功能在于提供一个友好的环境来构建和分析Petri网模型。Petri网,全称是Place/Transition Net,是一种...

    SuperObject增加排序.rar

    在IT行业中,JSON(JavaScript Object Notation)是一种广泛使用的轻量级数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。SuperObject是一个开源的、高性能的JSON库,专门为Delphi和FreePascal设计。...

    Delphi7版本 - X-Superobject

    **Delphi 7 版本 - X-SuperObject** X-SuperObject 是一个在 Delphi 开发环境中广泛使用的 JSON 库,特别适用于 Delphi 7 这样的较早版本。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其...

    lwm2m下object和resource定义_OBJECT和RESOURCE_lwm2m_LWM2Mobj_lwm2mobje

    《LWM2M中的Object与Resource定义:深入理解物联网平台对接》 在物联网(IoT)领域, Lightweight Machine to Machine (LWM2M) 协议作为一种轻量级的通信协议,广泛应用于设备管理和服务提供。它允许远程访问和管理...

    用C# MapObject编写的一个GIS程序

    在本文中,我们将深入探讨如何使用C#编程语言与Esri的MapObject库结合,来构建一个GIS(地理信息系统)程序。MapObject是Esri公司提供的一个强大的地图开发组件,它允许开发者创建交互式地图应用,支持多种地理数据...

    网页Object标签遮盖DIV标签解决方法

    在网页开发过程中,我们经常会遇到各种布局问题,其中之一就是`<Object>`标签遮盖`<div>`标签的情况。`<Object>`标签在HTML中用于嵌入外部资源,如Flash、PDF或其他插件,而`<div>`标签则常用于创建页面上的容器或...

    基于MapObject的GIS程序

    MapObject是ESRI公司开发的一款GIS(地理信息系统)组件,它为开发者提供了在应用程序中集成地图和地理数据的能力。基于MapObject的GIS程序设计主要涉及以下几个核心知识点: 1. **地图对象模型**:MapObject的核心...

    superobject.pas

    《SuperObject在Delphi中的应用与详解》 在Delphi编程环境中,SuperObject是一个非常重要的JSON解析库,它以其高效、轻量级和易于使用的特性,深受开发者的喜爱。本文将深入探讨SuperObject的核心概念、使用方法...

    c#实现object与byte[]互转

    C#实现object与byte[]互转 在C#中,实现object与byte[]互转是一种常见的需求,特别是在网络通信和数据存储中。这篇文章将详细介绍如何将object转换为byte[],并介绍相关的知识点。 序列化 序列化是将对象转换为二...

    delphi 使用superobject库解析和生成json实例

    SuperObject是一个轻量级且高效的JSON库,为Delphi开发者提供了方便的接口来解析和生成JSON对象。本篇文章将深入探讨如何在Delphi中使用SuperObject库进行JSON操作。 首先,要使用SuperObject,你需要在项目中引入...

    ldap提示object class violation

    ### LDAP提示Object Class Violation详解 #### 一、问题背景 在LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)的使用过程中,有时会遇到一个常见的错误提示:“object class violation”。这一...

    DELPHI之superobject实现JSON格式,可实现POST

    在 DELPHI 开发中,SuperObject 是一个非常流行的库,用于处理 JSON 数据。这个库提供了强大而灵活的 API,使得解析、创建和操作 JSON 对象变得轻而易举。在本文中,我们将深入探讨如何使用 SuperObject 实现 JSON ...

    ObjectBrowser10中文版

    **标题:“ObjectBrowser10中文版”** **描述解析:** `SI Object Browser`是一款专为Oracle应用开发和数据库管理设计的图形用户界面(GUI)工具。它集成了多种功能,方便开发者和DBA进行高效的工作。通过GUI,...

Global site tag (gtag.js) - Google Analytics