首页 > 其他分享 >Object类解释

Object类解释

时间:2024-04-03 23:44:21浏览次数:17  
标签:解释 String finalize sal Object Monster public name

equals方法

==和equals的区别

==:是一个比较运算符

  • 既可以判断基本类型也可以判定引用类型。
  • 如果判断基本类型,判断的是值是否相等。
  • 如果判断引用类型,判断的是地址是否相等(判断是否为同一对象)

equals方法:是Object类中的方法,只能判断引用类型,默认判断的是地址是否相等,子类通常重写该方法,用于判断内容是否相等

hashCode方法

返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

实际上,由 Object 类定义的 hashCode 方法确实会针对不同的对象返回不同的整数。

toString方法

基本介绍:默认返回全类名+@+哈希值的十六进制,toString:就是hashCode转为十六进制。

源码
 public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
// getClass().getName(),表示类的全名即包名+类名
// Integer.toHexString(hashCode()),表示把对象的hashCode值转换为十六进制的字符串
例子
 public class min {
    public static void main(String[] args) {
        
        Monster monster = new Monster("妖怪", "巡山", 1000);
        System.out.println(monster.toString());

    }
}
class Monster{
    private String name;
    private String Job;
    private double sal;

    public Monster(String name, String job, double sal) {
        this.name = name;
        Job = job;
        this.sal = sal;
    }
}

重写toString方法,打印对象或拼接对象时,都会自动调用该对象的toString形式。

查看代码
 public class min {
    public static void main(String[] args) {

        Monster monster = new Monster("妖", "巡山", 1000);
        System.out.println(monster);// 等价于monster.toString()

    }
}
class Monster{
    private String name;
    private String Job;
    private double sal;

    public Monster(String name, String job, double sal) {
        this.name = name;
        Job = job;
        this.sal = sal;
    }

    @Override
    public String toString() {//默认重写后是把对象的属性值输出,可自行修改
        return "Monster{" +
                "name='" + name + '\'' +
                ", Job='" + Job + '\'' +
                ", sal=" + sal +
                '}';
    }
}

 finalize的用法

当对象被回收时,系统自动调用该对象的 finalize方法。子类可以重写 finalize方法。

实际开发中几乎不会用到 finalize方法,但是要明白 finalize的运行机制。

查看代码
 public class Test {
    //Finalize的用法
    public static void main(String[] args) {
        Car car = new Car("car");
        car = null; // car没有任何引用所以car对象是一个垃圾,
        // 垃圾回收器就会销毁对象销毁前会调用该对象的finalize方法。在finalize可以重写
        System.gc();
        System.out.println("程序退出了");
    }
}
class Car{
    private String name;

    public Car(String name) {
        this.name = name;
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("car类被销毁了");
    }
}

 

标签:解释,String,finalize,sal,Object,Monster,public,name
From: https://www.cnblogs.com/vayenge/p/17960451

相关文章

  • Java Object类、Objects类
    Object类Object类是Java中所有类的根类,它提供了一些通用的方法,用于处理对象的基本行为。以下是Object类的一些主要特点:继承性:在Java中,除非特别指定,否则每个类都隐式地继承自Object类。这意味着即使没有明确地将一个类声明为继承自Object,它也会自动继承Object类的所有属性和......
  • 三个列表的简单解释
    1.有序列表2.无序列表3.自定义列表1.有序列表<ol><li>第一个</li><li>第二个</li><li>第三个</li></ol>展示图2.无序列表<ul><li>第一个</li><li>第二个</li><li>第三个</li></u......
  • 3D Object Detection Essay Reading 2024.04.01
    SwinTransformerpaper:https://arxiv.org/abs/2103.14030(ICCV2021)code:https://github.com/microsoft/Swin-Transformer/blob/2622619f70760b60a42b996f5fcbe7c9d2e7ca57/models/swin_transformer.py#L458学习链接:https://blog.csdn.net/qq_37541097/article/detail......
  • stable diffusion 预处理器解释大全,不断更新
    Canny硬边缘黑色背景带有白色边缘的单色图像;Depth深度灰度图像,黑色代表深区域,白色代表浅区域,Normal常规法线图,表示物体的凹凸纹理,常用在3D模型的绘制上;OpenPose姿态生成角色动作姿态的骨架图MLSD直线黑色背景上带有白色直线的单色图像;Lineart线稿黑色......
  • Javascript 变量类型 Object 和 Function 讲解
    在JavaScript中,Object 和 Function 是两种非常重要的类型,但它们之间也有一些关键的区别和联系。Object类型在JavaScript中,几乎所有的事物都是对象,包括原始值(如数字和字符串)的包装对象、数组、函数,以及使用字面量语法或构造函数创建的对象实例。对象是一个复合值,它可以包......
  • 《解释器模式(极简c++)》
            本文章属于专栏-概述-《设计模式(极简c++版)》-CSDN博客模式说明方案:对每个data建立一个单点解释器对象X,dataA和dataB之间的关系,建立一个关系解释器对象Y,这里的Y处理的是X1和X2。这样,复用了解释单文本的逻辑,和多文本间关系的逻辑。优点:灵活性:易于改变......
  • DMKD: IMPROVING FEATURE-BASED KNOWLEDGE DISTILLATION FOR OBJECT DETECTION VIA DU
    摘要最近主流的掩模蒸馏方法是通过从教师网络的特征图中重建学生网络的选择性掩模区域来实现的。在这些方法中,需要适当的选择掩模区域,使重构的特征像教师特征一样具有足够的识别和表示能力。然而,以前的掩模蒸馏方法只关注空间掩模,使得得到的掩模区域偏向于空间重要性,而没有......
  • c++蛮力法解释
    蛮力法(bruteforce)是一种基本的问题求解策略,也被称为穷举法。它的基本思想是通过穷举所有可能的解来寻找问题的解决方案。在C++中,可以使用循环和条件判断语句来实现蛮力法。下面是一个示例,假设要解决的问题是找到数组中两个数的和等于给定目标值的情况:#include<iostream>#i......
  • python学习-python解释器的安装
    先进入python下载的官网:https://www.python.org/2.根据自己电脑的系统来选择下载哪个解释器的版本,我的是Windows,选择的是Windows,截图如下:3.再根据自己Windows的版本来选择下载对应的版本,以Python3.11.8版本为例,(64-bit),截图如下:4.下载完成之后双击对应的exe文件,进行安装,安......
  • 论文阅读RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection
    文章目录RangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection问题笛卡尔坐标结构图Meta-KernelConvolutionRangeDet:InDefenseofRangeViewforLiDAR-based3DObjectDetection论文:https://arxiv.org/pdf/2103.10039.pdf代码:https://......