----几种接口的使用---

Compareable接口

对于给数组中的变量成员排序,我们能想到用sort,根据成员之间的大小进行排序,那么如果数组中的成员是对象的话,单单只是用sort去排序肯定是步成功的,因为并不知道要根据什么去排序,

这时要使用就要Compareable接口,并重写其中的compareTo方法,这样排序就会根据你写的方法来排序

compareTo这个方法的返回值是int类型的,如果你想要按照升序的方法排序,那么就返回一个大于0的数,降序则是一个小于0的值,这里Compareable接口里面已经是实现了排序的方法,而这个方法是根据compareTo这个方的放回值来确定排序的升降

Comparator接口也能实现该操作,且能比Comparable要简便,且更加的灵活

sort能传入一个使用了comparator接口的

,再进行排序时就会根据传入对象中的compare方法去对数组成员进行排序,而comparable接口在重写了compareTo方法后,排序的顺序就已经确定了,不能灵活的去选择排序方法

Cloneable接口

Cloneable接口可以用来拷贝对象

具体实现

1,要使用这个接口        2,在之类中国重写这个方法       

3,在mian函数的后面加上   throws CloneNotSupportedException 这个的意思的向程序上声明说这里可能胡有个叫CloneNotSupportedException的异常(敬请期待)

4,clone这个方法的返回值为object类,在赋值时需要强转为clone_this

clone方法是把成员都拷贝到一个新的空间,但如果拷贝的类里面有类的话,只会拷贝这个类的地址

结果是把着三个类中的new_name都改了,说明这个类并没有被克隆,那如果要clone这个类的话,就要使用深拷贝了

深拷贝就是在Name这个类里面也实现克隆这个接口,然后再clone_this里面克隆这个Name类

先拷贝外面这个clone_this类这时就完成了成员的克隆,但是这时clone_this这个类里面中的Name这个类并没有被克隆,那么就通过new_name调用clone这个方法,并件克隆好的对象在赋值给new_name

Object类

在java中所有类都默认继承了Object类,也可以说Object类是所有类的父类,可以用object类去接收所有类,发生向上转型

equal 方法

若用equal去比较俩个类,那么比较的其实是类的地址

那么如过要根据具体类里面的成员去比较,那么就要重写这个方法

所以在比较俩对象中的成员是否相同,一定要重写equal方法

hashcode方法重写

hashcode

当我们调用了hashcode方法,他会根据内置的算法给我们算出一个具体的数,可以理解为地址

那么如果我们想要根据对象的成员来判断是否相同,那么就要重写这个方法

END

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

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

相关文章

【漏洞复现】海洋CMS /js/player/dmplayer/dmku/ SQL注入漏洞复现(CVE-2024-29275)

0x01 产品简介 海洋CMS是一套专为不同需求的站长而设计的内容管理系统,灵活、方便、人性化设计、内容的专业网站。海洋CMS基于PHPMySql技术开发,完全开源免费、无任何加密代码。简单易用是最大的特色,可快速建立一个海量 0x02 漏洞概述 海…

虚拟机开启网络代理设置

前言: 不管是物理主机还是实验环境中的VMware虚拟机,有时候总要访问一些镜像网站或者资源网站拉取一些学习资料,但由于国内外网络环境的差异和网络安全的问题。总是会被阻拦。物理机相对比较容易一些,今天我们来说一说虚拟机应该…

SpringBoot+Vue网上购物商城系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 系统角色对应功能 用户商家管理员 系统功能截图

Java面试八股之构造方法有哪些特性

构造方法有哪些特性 方法名与类名相同:构造方法的名称必须与它所在的类名称完全相同,包括大小写。 无返回类型:构造方法没有返回类型声明,连void也不需要。虽然没有明确的返回类型,但它隐式地返回了新创建的实例的引…

C语言调用so/dll动态库

文章目录 windows系统linux系统windows 与 linux下 C 调用动态库的差异 C语言调用动态链接库 windows系统 windows系统下&#xff0c;C语言调用win下的动态库dll&#xff0c;使用头文件<windows.h>。 准备基础C代码 lauf.c #include <stdio.h>// 定义函数&#x…

Hbase布隆过滤器

Hbase布隆过滤器 说在前面 重要思想&#xff1a; 1.时间换空间&#xff1a;降低内存使用率 --> 降低数据查询时间 2.空间换时间&#xff1a;提高数据查询速率 --> 保存在内存中

Web前端大作业:基于html+css+js的仿淘宝首页前端项目(内附源码)

文章目录 一、项目介绍二、项目展示三、源码展示四、源码获取 一、项目介绍 这个项目是一个Web前端大作业,目的是让学生们通过实践仿设计淘宝官网的前端页面,来全面锻炼他们的HTML、CSS和JavaScript编程能力,以及产品需求分析、界面设计、交互设计等软实力。 淘宝作为国内最大…

UML交互图-协作图

概述 协作图和序列图都表示出了对象间的交互作用&#xff0c;但是它们侧重点不同。序列图清楚地表示了交互作用中的时间顺序&#xff0c;但没有明确表示对象间的关系。协作图则清楚地表示了对象间的关系&#xff0c;但时间顺序必须从顺序号获得。序列图常常用于表示方案&#…

Springboot 开发-- 集成 Activiti 7 流程引擎

引言 Activiti 7是一款遵循BPMN 2.0标准的开源工作流引擎&#xff0c;旨在为企业提供灵活、可扩展的流程管理功能。它支持图形化的流程设计、丰富的API接口、强大的执行引擎和完善的监控报表&#xff0c;帮助企业实现业务流程的自动化、规范化和智能化。本文将为您详细介绍 Ac…

JVM的几种常见垃圾回收算法

引言&#xff1a; Java Virtual Machine&#xff08;JVM&#xff09;作为Java程序运行的核心&#xff0c;其垃圾回收&#xff08;Garbage Collection, GC&#xff09;机制在内存管理中起着至关重要的作用。垃圾回收算法是JVM性能优化的重要方面。本文将详细介绍几种常见的垃圾回…

【网络安全的神秘世界】磁盘空间告急?如何解决“no space left on device”的困扰

&#x1f31d;博客主页&#xff1a;泥菩萨 &#x1f496;专栏&#xff1a;Linux探索之旅 | 网络安全的神秘世界 | 专接本 磁盘空间告急&#xff1f;如何解决“no space left on device”的困扰 &#x1f64b;‍♂️问题描述 错误信息 "write /var/lib/docker/tmp/GetIma…

【文档智能】包含段落的开源的中文版面分析模型

github&#xff1a;https://github.com/360AILAB-NLP/360LayoutAnalysis 权重下载地址&#xff1a;https://huggingface.co/qihoo360/360LayoutAnalysis 一、背景 在当今数字化时代&#xff0c;文档版式分析是信息提取和文档理解的关键步骤之一。文档版式分析&#xff0c;也…

iOS--oc对象,类,和元类本质

iOS--oc对象&#xff0c;类&#xff0c;和元类本质 前言实例对象的具体结构自定义类对象的结构继承关系 类信息的存放对isa、superclass总结 前言 最近在学习runtime的过程中&#xff0c;发现其中消息发送-动态方法解析-消息转发中涉及到了大量的类与对象的底层知识&#xff0…

Comfyui容器化部署与简介

目前使用 Stable Diffusion 进行创作的工具主要有两个&#xff1a;Stable Diffusion WebUI 和 ComfyUI。本文重点介绍ComfyUI的部署使用。 ComfyUI 可定制性很强&#xff0c;可以让创作者搞出各种新奇的玩意&#xff0c;通过工作流的方式&#xff0c;也可以实现更高的自动化水平…

录屏快捷键在哪?3个快捷键,教会你快速录屏

在数字化时代&#xff0c;录屏功能已经变得日益重要&#xff0c;无论是工作汇报、教学演示还是游戏分享&#xff0c;我们都需要借助录屏工具来捕捉屏幕上的精彩瞬间。而录屏快捷键&#xff0c;作为一种高效的录屏操作方式&#xff0c;能够极大地提升我们的录屏效率。那么&#…

echarts地图添加外边框(散乱地图块添加区域边界线)

需求&#xff1a; 蓝色边是街道地图&#xff0c;也是实际有用的地图&#xff0c;可以点击拖动之类&#xff0c;由于太散乱&#xff0c;现在增加一个灰色边表示外面区县&#xff08;不可点击&#xff09;&#xff0c;让他看起来是一个整体 下面这个图是我最后做出来的案例 难…

JavaWeb6 Tomcat+postman请求、响应

Web服务器 对HTTP协议操作进行封装&#xff0c;简化web程序开发 部署web项目&#xff0c;对外提供网上信息浏览服务 Tomcat 轻量级web服务器&#xff0c;支持servlet&#xff0c;jsp等少量javaEE规范 也被称为web容器&#xff0c;servlet容器 Springboot有内置Tomcat nginx…

阅文集团CEO侯晓楠:建立10亿生态扶持基金,为好内容搭建舞台

6月12日&#xff0c;由安徽省文化和旅游厅、安徽省文学艺术界联合会、黄山市人民政府指导&#xff0c;阅文集团、黄山旅游发展股份有限公司主办的2024阅文创作大会在黄山召开。 据「TMT星球」了解&#xff0c;大会总结了过去一年阅文在“AIIP”业务升级思路下创作生态和IP领域…

Linux部署项目

手动部署 1.在IDEA写一个有关springboot项目 在windows客户端可以通过localhost:8080/hello 访问 2.用packge 命令将该springboot项目打包 并在target目录下找到打包的jar包 3.上传到linux上 个人习惯在usr/local/app 下上传该项目 创建切换到app目录下 mkdir /usr/local/ap…

AOSP12隐藏首页搜索框----隐藏google 搜索栏

目录 第一步&#xff1a;修改文件 第二步&#xff1a;修改文件 第三步&#xff1a;重新编译源码&#xff0c;启动模拟器 第四步、运行效果 第一步&#xff1a;修改文件 源码文件路径: packages/apps/Launcher3/res/layout/search_container_workspace.xml&#xff0c;将…