JAVA--->抽象类接口详解(3)

Object类

1.概念:Object是Java默认提供的一个类。Java里面除了Object类,所有的类都是存在继承关系的。默认会继承Object父类。即所有类的对象都可以使用Object的引用进行接收。

2.获取对象信息(toString方法)

// Object类中的toString()方法实现:
public String toString() {return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

3. 对象比较equals方法

在Java中,直接通过进行比较时:
a.如果==左右两侧是基本类型变量,比较的是变量中值是否相同
b.如果==左右两侧是引用类型变量,比较的是引用变量地址是否相同
c.如果要比较对象中内容,必须重写Object中的equals方法,因为equals方法默认也是按照地址比较的:
// Object类中的equals方法
public boolean equals(Object obj) {return (this == obj); // 使用引用中的地址直接来进行比较
}
class Person{private String name ;private int age ;public Person(String name, int age) {this.age = age ;this.name = name ;}
}
//重写equals
class Person{...@Overridepublic boolean equals(Object obj) {if (obj == null) {return false ;}if(this == obj) {return true ;}// 不是Person类对象if (!(obj instanceof Person)) {return false ;}Person person = (Person) obj ; // 向下转型,比较属性值return this.name.equals(person.name) && this.age==person.age ;
}
}
public class Test {public static void main(String[] args) {Person p1 = new Person("gaobo", 20) ;Person p2 = new Person("gaobo", 20) ;int a = 10;int b = 10;System.out.println(a == b); // 输出trueSystem.out.println(p1 == p2); // 输出falseSystem.out.println(p1.equals(p2)); // 输出false}
}

注结论:比较对象中内容是否相同的时候,一定要重写equals方法。

4.hashcode方法(数据结构详解)

1、hashcode方法用来确定对象在内存中存储的位置是否相同
2、事实上hashCode() 在散列表中才有用,在其它情况下没用。在散列表中hashCode() 的作用是获取对象的
散列码,进而确定该对象在散列表中的位置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/47134.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据精度丢失

js数据精度丢失 最近看面试题想到了之前在开发钟遇到过的问题,现总结一下 在开发过程中,发现从后台返回的数据结构中的id字段在前端显示为不正确的值。经过排查,怀疑是JavaScript中Number类型精度丢失的问题。通过将id字段的类型从Number改为…

Docker 三剑客

文章目录 Docker 三剑客1. Docker Engine功能与特点:工作原理:示例命令: 2. Docker Compose功能与特点:工作原理:示例文件 (docker-compose.yml):示例命令: 3. Docker Swarm功能与特点&#xff…

快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

近日,快手可灵大模型团队开源了名为LivePortrait的可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。如下动图所示: 来自网友测试LivePortrait 来自网友测试Li…

2.I/O口

I/O输出(点灯) 分析电路 看电路图&#xff0c;元器件形成电压差&#xff0c;即可点亮LED灯 代码编写 使用不同操作进行LED控制 #include "reg52.h" //51单片机头文件 #include <intrins.h> sbit LED1 P1^0; //引脚初始化&#xff1a;P1^0&#xff1a;对应引脚…

【TypeDB 】机器学习和符号 AI 在机器人技术中的作用

机器学习和符号 AI 在机器人技术中的作用 煤油灯科技2022-06-29 14:23前言 机器人学是计算机科学中的一个多学科领域,致力于机器人的设计和制造,机器人在制造、太空探索和国防等行业都有应用。虽然该领域已经存在了 50 多年,但随着科幻小说成为现实,波士顿动力公司的Spot和…

Linux的进程和权限的基本命令

目录 基本命令 man find date cal du ln exit grep 基本命令-帮助查询&#xff1a; wc cat more less head tail echo alias unalias 基本命令-进程管理&#xff1a; ps kill top 操作系统负载查看 用户分类&#xff1a; 程序用户 普通用户&#x…

<Rust>egui部件学习:如何在窗口及部件显示中文字符?

前言 本专栏是关于Rust的GUI库egui的部件讲解及应用实例分析&#xff0c;主要讲解egui的源代码、部件属性、如何应用。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;rust 库&#xff1a;egui、eframe 概述 本文是本专栏的第一篇博…

探索Java设计模式:构建高效、可维护的软件架构

在软件开发中&#xff0c;设计模式是一种经过验证的解决方案&#xff0c;用于解决常见的设计问题。设计模式不仅提高了代码的可维护性和可重用性&#xff0c;还能帮助开发者遵循最佳实践&#xff0c;构建高效且灵活的软件架构。本文将带你深入了解几种常见的Java设计模式&#…

应用实践之基于MobileNetv2的垃圾分类

MobileNetv2模型原理介绍 前言 MobileNet是2017年由Google团队提出的轻量级CNN网络&#xff0c;专注于移动端、嵌入式或IoT设备。它使用深度可分离卷积的思想来减小模型参数与运算量&#xff0c;同时引入宽度系数和分辨率系数以满足不同应用场景的需求。MobileNetV2则采用倒残…

STM32智能交通灯系统教程

目录 引言环境准备智能交通灯系统基础代码实现&#xff1a;实现智能交通灯系统 4.1 数据采集模块 4.2 数据处理与控制模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通灯系统通过STM…

Hadoop3:HDFS-存储优化之纠删码

一、集群环境 集群一共5个节点&#xff0c;102/103/104/105/106 二、纠删码原理 1、简介 HDFS默认情况下&#xff0c;一个文件有3个副本&#xff0c;这样提高了数据的可靠性&#xff0c;但也带来了2倍的冗余开销。Hadoop3.x引入了纠删码&#xff0c;采用计算的方式&#x…

【Python实战因果推断】37_双重差分8

目录 Diff-in-Diff with Covariates Diff-in-Diff with Covariates 您需要学习的 DID 的另一个变量是如何在模型中包含干预前协变量。这在您怀疑平行趋势不成立&#xff0c;但条件平行趋势成立的情况下非常有用&#xff1a; 考虑这种情况&#xff1a;您拥有与之前相同的营销数…

c语言唯一一个三目运算符

条件表达式由两个符号&#xff08;&#xff1f;和&#xff1a;&#xff09;组成&#xff0c;必须一起使用。要求有三个操作对象&#xff0c;称为三目运算符。 一般形式为 表达式1&#xff1f;表达式2&#xff1a;表达式3 理解如下&#xff1a; a>b?(maxa):(maxb); //相当…

oraclejdk相比较于openjdk,在G1,ZGC,ShenandoahGC垃圾回收器做了哪些具体的优化,此文一篇讲清楚

前言 了解 Oracle JDK 在 G1、ZGC 和 Shenandoah 垃圾回收器&#xff08;GC&#xff09;方面的具体优化需要深入了解每个垃圾回收器的内部工作原理及 Oracle 在其基础上所做的具体改进。以下是对 G1、ZGC 和 Shenandoah 垃圾回收器的详细优化分析&#xff0c;包括具体的技术实…

Apache trino的ldap认证开启

作者&#xff1a;櫰木 1、背景 由于trino 默认没有开启用户认证体系&#xff0c;需要ldap用户进行认证。开启tls和ldap用户认证&#xff0c;提高安全性。 2、配置 前置条件。 trino 集群已经部署完成 ldap 服务 openjdk 版本大于11.0.17 生成证书 keytool -genkeypair…

【动态规划1】斐波那契数列模型篇

文章目录 声明动态规划介绍1137.第N个泰波那契数题目描述分析代码 面试题 08.01. 三步问题题目描述分析代码 746.使用最小花费爬楼梯题目描述分析代码 91.解码⽅法题目描述分析代码 声明 本篇博客为动态规的基础篇&#xff0c;从零开始学习动态规划&#xff0c;如有错误&#…

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理

AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 目录 AGI 之 【Hugging Face】 的【问答系统】的 [评估并改进问答Pipeline] / [ 生成式问答 ] 的简单整理 一、简单介绍 二、构建问答系统 三、评估并改进问答pipeline 1…

[k8s源码]4.informer

Informer 是 client-go 库中的一个核心组件,它提供了一种高效的方式来监视 Kubernetes 集群中资源的变化。Informer 通过 Watch 机制与 API Server 建立长连接&#xff0c;初次同步时会获取资源的完整列表&#xff0c;之后只接收增量更新,大大减少了网络流量。 使用informer可…

Java常用排序算法

算法复杂度 详解Java常用排序算法&#xff08;10种&#xff0c;含演示动画&#xff09; 冒泡排序&#xff08;Bubble Sort&#xff09; arr[0] 与 arr[1]比较&#xff0c;如果前面元素大就交换&#xff0c;如果后边元素大就不交换。然后依次arr[1]与arr[2]比较&#xff0c;第…

可视化工具选择指南:助力企业数字化转型和新质生产力发展

随着信息技术的快速发展和新质生产力概念的兴起&#xff0c;可视化工具在各个行业中的作用日益凸显。这些工具不仅能够帮助用户更直观地理解和分析数据&#xff0c;还能提升团队的协作效率和决策质量。 在当今数字化转型迅速发展的背景下&#xff0c;新质生产力的概念正在成为…