首页 > 编程语言 >Java Object类有那些方法,分别作用

Java Object类有那些方法,分别作用

时间:2024-05-06 15:11:21浏览次数:21  
标签:Java 对象 true Object equals hashCode 类有 方法

1.类构造器

  是创建Java对象的途径之一,通过new 关键字调用构造器完成对象的实例化,或通过构造器对象进行相对应的初始化。在JDK的Object类源码中,系统会自动添加一个无参构造器。

public Object(){
    Object obj = new Object();//构造一个Object类的对象
}

2.registerNatives 方法

private static native void registerNatives();
    static{
        registerNatives();
    }

静态代码块是一个类在初始化过程中必定会执行的内容,所以在类加载时会执行该方法,通过该方法来注册本地方法。

3.getClass 方法

public final native Class<?> getClass();

首先,该方法由final 声明本地方法,不能被重写,作用是返回运行时类对象,通过这个类对象可以获取该运行时类的相关属性和方法。

class是一个类的属性,能获取该类编译时的类对象;而getClass()是一个类的方法,它是获取该类运行时的类对象。

4.hashCode 方法

public native int hashCode()

这是一个由native声明的本地方法,作用是返回对象的哈希码(是int类型的数值)。

哈希算法也称为散列算法,是将数据依据特定算法产生的结果直接指定到一个地址上,这个结果就是由hashCode方法产生的。当集合要添加新元素时,会先调用这个元素的hashCode方法,就能定位到它应放置的物理位置上。

  1)如果这个位置上没有元素,就直接存储在这个位置上,不用再进行任何比较;

  2)如果这个位置上已经有元素,就调用它的equals方法与新元素进行比较,相同的话就不存;不同的话(也就是产生了hash冲突),那么就在这个key的位置产生一个链表,将所有hashCode相同的对象存放在这个单链表上。

如果两个对象的equals值比较相等,那么它们的hashCode值一定相等;如果两个对象的equals值吧比较不相等,那么他们的hashCode值可能相等,也可能不相等。

5.equals 方法

public boolean equals(Object obj){
    return (this == obj);
}

  1)Object中的equals 方法比较的是对象的地址是否相同;equals方法可以被重写,重写后equals方法比较的是两个对象值是否相同。

  2)在Java规范中,对equals方法的使用必须遵循以下几个规则:

    自反性:对于任何非空引用值X,X.equals(X)都应返回true;

    对称性:对于任何非空引用值X和Y,当且仅当Y.equals(X)返回true时,X.equals(Y)也应该返回true;

    传递性:对于任何非空引用值X,Y,Z,如果X.equals(Y)返回true,并且Y.equals(Z)返回true,那么X.equals(Z)应返回true;

    一致性:对于任何非空引用值X和Y,多次调用X.equals(Y)始终返回true或者始终返回false。

标签:Java,对象,true,Object,equals,hashCode,类有,方法
From: https://www.cnblogs.com/w852894903/p/18174742

相关文章

  • Java面向对象编程概念
    面向对象编程(OOP)概念,如类、对象、继承、封装、多态概念:面向对象编程(Object-OrientedProgramming,简称OOP)是一种程序设计范型或编程范式。这种范式使用“对象”来设计应用程序和系统的各个部分。在面向对象编程中,万物皆对象,程序被视作一系列对象的集合,这些对象通过消息传递来交互......
  • AdaZoom: Towards Scale-Aware Large Scene Object Detection 论文解读
    《AdaZoom:TowardsScale-AwareLargeSceneObjectDetection》笔记1.研究动机1.1挑战与困难小目标检测和对象尺度差异存在挑战现有研究方法对于大场景中如此极端尺度变化的物体缺乏灵活性,缺乏对不同尺度物体的适应性。1.2解决方案构建了一个自适应缩放网络(简称AdaZoom),对......
  • JavaGUI - [03] LayoutManager布局管理器
    Component中有一个方法setBounds()可以设置当前容器的位置和大小,但如果我们手动为组件设置位置和大小的话,就会造成程序的不通用性。LayoutManager布局管理器可以根据运行平台来自动调整组件大小,程序员不用再手动设置组件的大小和位置,只需要为容器选择合适的布局管理器即可。 ......
  • Java中的自增自减
    在Java中,自增(++)和自减(--)是两种特殊的运算符,用于在表达式的计算过程中增加或减少变量的值。它们有两种形式:前缀形式(++variable或--variable)和后缀形式(variable++或variable--)。这两种形式在表达式中的行为有所不同。前缀形式++variable:先增加变量的值,然后返回增加后的值。--......
  • JavaScript-DOM简介
    JavaScript-DOM简介之前我们说过JavaScript有三部分组成ECMAscript,BOM,DOM,之前我们都在了解JavaScript的语法即ECMAScript,今天我们开始了解DOM(文档对象模型(DocumentobjectModel),操作网页上的元素的API)什么是DOMDOM:DocumentObjectModel,文档对象模型。DOM为文档提供了结......
  • Java基本数据类型
    byte:字节型,8位二进制数,有符号,取值范围:-128到127。默认值:0示例:bytemyByte=10;空间大小:1字节(byte),即8位(bit)。short:短整型,16位二进制数,有符号,取值范围:-32,768到32,767。默认值:0示例:shortmyShort=2000;空间大小:2字节(byte),即16位(bit)int:整型,32位二进制数,有符号,取值范......
  • Paper Reading: Tri-objective optimization-based cascade ensemble pruning for dee
    目录研究动机文章贡献本文方法染色体编码适应度函数评估进化过程最终解选择级联剪枝框架实验结果数据集和实验设置三目标优化的效果不同集成规模的算法比较算法在不同数据集上的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能......
  • JavaScript正则表达式
    JavaScript正则表达式创建正则表达式使用构造函数var变量=newRegExp("正则表达式");//注意,参数是字符串var变量=newRegExp("正则表达式","匹配模式");//注意,两个参数都是字符串RegExp的意思是Regularexpression。使用typeof检查正则对象,会返回object。......
  • java NIO介绍
    非阻塞网络调用可以使得我们可以不必等待一个操作的完成。NIO选择器可以使得我们使用较少的线程监听许多连接上的事件,减少了内存管理和cpu上下文切换所带来的开销。IO多路服用包括selector、poll、epoll、kqueue等1、select使用数组保存poll中注册的事件,单个进程能够监听......
  • 第一章 Java基础语法
    1-1环境搭建+入门   ......