广告
返回顶部
首页 > 资讯 > 精选 >关于Java Object你真的了解了吗
  • 891
分享到

关于Java Object你真的了解了吗

javaobjectava 2023-05-31 16:05:38 891人浏览 八月长安
摘要

导读: 在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我

导读: 在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我一样,想好好的了解一下的。毕竟是基础中的基础。

下面给出一个简单比较全面的概要:

1. hashCode()和equals()

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

public native int hashCode();

当equals()方法被override时,hashCode()也要被override.

当equals()返回true,hashcode一定相等。即:相等(相同)的对象必须具有相等的哈希码(或者散列码)

如果两个对象的hashCode相同,它们并不一定相同。

集合查找时,hashcode能大大降低对象比较次数,提高查找效率!

在判断重复元素时,直接通过hashcode()方法,定位到桶位置,如果该位置有元素,再调用equals()方法判断是否相等。而不是遍历每一个元素比较equals()!

2. clone() 深复制

public class Animal implements Cloneable {  private int height;  private int age;  public Animal(int height, int age){    this.height = height;    this.age = age;  }  @Override  public Object clone() throws CloneNotSupportedException {    return super.clone();  }}public class People implements Cloneable {  private int height;  private int age;  private Animal a;  public People(int height, int age,Animal a){    this.height = height;    this.age = age;    this.a = a;  }  @Override  public Object clone() throws CloneNotSupportedException {    People p = (People) super.clone();    p.a = (Animal) a.clone();    return p;  }}Animal a1 = new Animal(100,3);People p1 = new People(173,24,a1);//深复制People p2 = (People) p1.clone();

--结束END--

本文标题: 关于Java Object你真的了解了吗

本文链接: https://www.lsjlt.com/news/227204.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 关于Java Object你真的了解了吗
    导读: 在平时的coding中hashCode()和equals()的使用的场景有哪些?clone深复制怎么实现?wait()和notify()有什么作用?finalize()方法干嘛的?看似coding中使用的不多,不重要,但是有没有跟我...
    99+
    2023-05-31
    java object ava
  • 关于@Autowierd && @Resource 你真的了解吗
    目录关于@Autowierd && @Resource 你真的了解吗1.@Autowierd2.@Resource2.1@Resource具体装配顺序,即指定的注入实...
    99+
    2022-11-12
  • 你了解Java中的Object类吗
    任何一个类默认继承Object类,就算没有直接继承,最终也会间接继承。 Object类,有两种方式找到: 第一种:在源码当中找到 第二种:查阅java类库的帮助文档...
    99+
    2022-11-12
  • JavaVolatile关键字你真的了解吗
    目录正文并发编程的三要素1.原子性2.可见性3.有序性VolatileVolatile 的内存模型Volatile 的实现原理(1) lock(2) unclock(3) read(...
    99+
    2022-11-12
  • java的泛型你真的了解吗
    目录泛型的概述和优势自定义泛型类自定义泛型方法自定义泛型接口泛型通配符、上下限总结泛型的概述和优势 泛型概述 泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检...
    99+
    2022-11-13
  • Java 缓存:你真的了解它吗?
    在 Java 开发中,缓存是一个非常重要的概念。它可以大大提升应用程序的性能,减少对底层资源的占用,提高用户体验。但是,你真的了解 Java 缓存吗?本文将为大家介绍 Java 缓存的基本概念、分类、应用场景以及常见的缓存框架。 一、缓存...
    99+
    2023-10-06
    缓存 学习笔记 面试
  • Java和JavaScript的异同,你真的了解吗?
    Java和JavaScript是两种非常常见的编程语言,它们在很多方面有着相似的特性,但它们也有着很多不同之处。在本文中,我们将探讨Java和JavaScript的异同,并且演示一些代码示例来帮助你更好地理解它们。 Java和JavaS...
    99+
    2023-10-24
    javascript http 重定向
  • Java的代理模式你真的了解吗
    目录代理模式原理解析动态代理的原理解析代理模式的应用场景代理模式原理解析 代理模式(Proxy Design Pattern),它在不改变原始类(或者叫被代理类)代码的情况下,通过引...
    99+
    2022-11-13
  • 你真的了解 PHP 关键字 API 容器吗?
    PHP 是一种广泛使用的服务器端脚本语言,由于其易学易用的特性,它已经成为了众多 Web 开发者的首选语言。而在 PHP 中,有一些关键字,比如 API 和容器,它们在开发中也扮演着非常重要的角色。本文将详细介绍这两个关键字,帮助读者更好地...
    99+
    2023-10-25
    关键字 api 容器
  • 你真的了解IP地址吗?
    本文已收录于专栏 ⭐️ 《计算机网络》⭐️ 学习指南: IP协议基本认识分类地址多播地址 无分类地址划分方式子网掩码 IP 分片与重组IPv6基本认识IPv4 首部与 ...
    99+
    2023-09-09
    tcp/ip 网络 服务器 网络协议 ip
  • 你真的需要了解Bash吗?
    Bash是一种强大的命令行解释器,它是Linux和macOS操作系统上的默认Shell。尽管它是如此重要,但很多人并不了解Bash的实际用途。在本文中,我们将探讨Bash的重要性以及它如何帮助我们更好地管理和控制计算机系统。 Bash是什么...
    99+
    2023-08-15
    path bash http
  • 你真的了解Java的多线程方法吗
    目录Java 多线程方法详解startrunyieldjoinsleepInterruptdeamonPriority总结Java 多线程方法详解 start start方法&nbs...
    99+
    2022-11-13
  • 关于Maven的使用,这些你都真的了解么
    Maven使用说明及规范 此文档主要说明Maven的基础使用方式,以及在使用过程过程中需要遵守哪些默认的准则。 我们工作中会经常写maven的配置,但是很多maven使用细节你可能并...
    99+
    2022-11-12
  • Java同步框架API:你真的了解它吗?
    Java是一个非常流行的编程语言,它的强大之处在于它提供了许多非常有用的API,其中包括同步框架API。同步是指多个线程在共享相同资源时需要互相协调和同步,以避免出现竞争条件和数据不一致等问题。在Java中,同步框架API提供了一些有用的...
    99+
    2023-09-05
    同步 框架 api
  • Vue的过滤器你真了解吗
    目录1.过滤器1.1对过滤器的理解1.2全局过滤器:1.3局部过滤器:1.4过滤器的案例总结1. 过滤器 案例中使用到时间格式相关API 1.1 对过滤器的理解 定义:对要显示的数据...
    99+
    2022-11-13
  • 内网穿透你真的了解吗?
    前言 内网穿透作为程序员常用的调试手段之一,我们可以通过在个人电脑上运行花生壳或者 frp 等方式,让他人访问我们本地启动的服务,而且这种访问可以不受局域网的限制,当我们使用ngrok,frp等开源框架时,你是否有好奇过它神奇的作用?明明没...
    99+
    2023-08-31
    网络穿透 NAT 内网 后端开发 Linux服务器开发
  • 你真的了解Java中NumPy的索引机制吗?
    Java中的NumPy是一种非常强大的数组处理工具,它可以帮助我们高效地处理大量的数据。在Java中,NumPy的索引机制是非常重要的一个概念,它可以帮助我们快速地定位和获取数组中的数据。本文将深入探讨Java中NumPy的索引机制,帮助读...
    99+
    2023-05-26
    numy numpy 索引
  • Java中关于关键字使用的一些技巧,你了解吗?
    Java是一种高度常用的编程语言,其中关键字的使用在程序开发过程中起着至关重要的作用。本文将介绍一些Java中关于关键字使用的技巧,帮助读者更好地理解和运用Java编程语言。 一、final关键字的使用 在Java中,final关键字表示不...
    99+
    2023-07-09
    关键字 数组 开发技术
  • 你真的了解Java实时重定向索引吗?
    Java实时重定向索引是一种高效的数据结构,其可以让我们在不停止应用程序的情况下,快速地更新和查询数据。然而,很多开发者并不了解这个特性,下面我们就来深入了解一下Java实时重定向索引。 什么是Java实时重定向索引? Java实时重定...
    99+
    2023-09-21
    实时 重定向 索引
  • 你真的了解 Java 分布式编程算法吗?
    Java分布式编程算法是一种处理分布式计算的技术,它可以通过不同的节点分布计算任务,将计算结果整合在一起。在本文中,我们将深入了解Java分布式编程算法,并提供一些示例代码来帮助您更好地理解。 Java分布式编程算法的基础概念 Java分布...
    99+
    2023-06-20
    教程 分布式 编程算法
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作