在Java中,Cloneable接口的作用,抛出CloneNotSupportedException的原因

文章目录

  • 一、Cloneable接口的作用
  • 二、Cloneable接口的用法
  • 三、Cloneable的标记作用实现原理

一、Cloneable接口的作用

  • 继承Cloneable接口并调用super.clone()是为了确保对象的克隆行为符合Java的规范。尽管Cloneable是一个空接口,没有定义任何方法,但如果类实现了这个接口,那么Java的Object类中的clone方法就会被认为是可以正常工作的。

  • 当你尝试在一个没有实现Cloneable接口的类上直接调用clone方法时,JVM会抛出CloneNotSupportedException异常,因为它默认假设该类不支持克隆。通过让类实现Cloneable接口,你告诉JVM这个类确实支持克隆操作,并且clone方法应该返回一个该类型的新实例。

  • 所以,虽然Cloneable接口本身没有提供任何方法或功能,但它起到了标记的作用,告诉Java运行时环境某个类支持克隆操作。

二、Cloneable接口的用法

  • Object.clone()方法对于当前类中的普通属性是深拷贝,对于复杂属性是浅拷贝。
  • Java基础之Cloneable接口的用法

三、Cloneable的标记作用实现原理

  • 反射:在反射API中,有一个方法叫 Class.isAssignableFrom(Class<?> cls) ,它用来判断一个类是否可被赋值给一个变量。如果尝试将一个没有实现Cloneable接口的类的实例赋值给一个实现了Cloneable接口的变量,将会抛出ClassCastException异常。

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

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

相关文章

MQTT Topic通配符

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

如何不依赖Unity直接解压unitypackage的内容

使用场景 我们都知道unity的资源导出是导出成.unitypackage文件,如果要里面的内容,得打开Unity,将unitypackage导入进去才能看到里面的内容。 但是很多时候我们下了几十个unitypackage资源包,又不清楚好不好用,而且导入之后编译特别慢,unity又不提供批量解压的功能,所…

雷达图相关

1.中间显示数字 title: {text: 88,x: center,y: center,textStyle: {color: #333,fontWeight: bolder,fontSize: 64,} } 2.提示信息 tooltip: {trigger: item, // 当鼠标悬浮在某个数据项上时触发}, 3.修改中间颜色 默认&#xff1a; splitArea: {areaStyle: {color: [rgba(…

三分钟搞定普通函数和箭头函数的this指向问题

记住两个口诀&#xff1a; 普通函数的this是&#xff1a;谁调用这个函数&#xff0c;函数的this就指向谁 箭头函数的this是&#xff1a;箭头函数定义时的执行上下文的this是谁&#xff0c;箭头函数的this就指向谁 实例代码&#xff1a; var name222var b {name:111,fn:()>{…

网康科技 NS-ASG 应用安全网关 SQL注入漏洞复现(CVE-2024-2330)

0x01 产品简介 网康科技的NS-ASG应用安全网关是一款软硬件一体化的产品,集成了SSL和IPSec,旨在保障业务访问的安全性,适配所有移动终端,提供多种链路均衡和选择技术,支持多种认证方式灵活组合,以及内置短信认证、LDAP令牌、USB KEY等多达13种认证方式。 0x02 漏洞概述 …

OPENCV(0-1之0.1)

OPENCV-0.1 学习安排计算机视觉简介是什么&#xff1f;应用领域基础概念 OpenCV简介历史背景和主要贡献者支持的语言和平台主要模块和功能 安装(windows_python)pip安装验证安装&#xff08;记得安装jupyter&#xff09; 第一个OpenCV程序实践练习 官方文档 学习安排 计算机视…

数据同步方案

目录 1 需求概述 1&#xff09;时间戳 2&#xff09;触发器 3&#xff09;差异更新 4&#xff09;日志解析 2 产品实施 1&#xff09;数据同步 2&#xff09;同步日志 3&#xff09;流量统计 4&#xff09;数据比对 1 需求概述 数据同步用于将不同数据库系统产生的数…

欧盟商标的申请流程

欧盟商标的申请流程 1、商标检索&#xff1a;在申请之前&#xff0c;我们建议您进行商标检索&#xff0c;以确定您的商标是否与已有商标存在冲突。 2、申请途径选择&#xff1a;您可以选择通过欧盟商标局的在线系统&#xff0c;或者通过邮寄纸质申请材料的方式进行申请。 3、…

讲讲分布式和集群那点事

本专栏简单讲讲那些特别散乱杂的知识,欢迎各位朋友订阅专栏 感谢一路相伴的朋友们 浅淡计算机系列第5篇 目录 前言 集群 啥是集群? 集群可以应用在哪里? 集群的好处和坏处 举个例子 分布式 啥是分布式?

java 操作JSON对象查找、删除、增加和修改等操作

对JSON的查找 格式&#xff1a; JSONObject.getString("value") 示例&#xff1a; info.getString("name") 删除JSON对象中的某个数据 格式&#xff1a; JSONObject.remove("value") 示例&#xff1a;info.remove("name") 增加和修改J…

2024腾讯云轻量应用服务器地域有什么区别?哪个好?

腾讯云轻量应用服务器地域如何选择&#xff1f;地域就近选择&#xff0c;北方选北京地域、南方选广州地域&#xff0c;华东地区选上海地域。广州上海北京地域有什么区别&#xff1f;哪个好&#xff1f;区别就是城市地理位置不同&#xff0c;其他的差不多&#xff0c;不区分好坏…

亲测有效,职场焦虑迷茫的测试人都需要的3大良方!

Hi&#xff0c;大家好&#xff0c;我是小马哥。日常大家聊天时经常提及一个关键词——大环境不好&#xff0c;这种感受像一股暗流&#xff0c;由此带来了很多变化。 有人在这股潮流中感到迷失&#xff0c;选择了躺平&#xff1b;而有的人则积极寻找应对方法&#xff0c;努力在…

Linux常用指令大全

一、基本命令 1、立即关机并重启动&#xff0c;执行如下命令&#xff1a; shutdown -r now 或者reboot 2、立即关机&#xff0c;执行如下命令&#xff1a; shutdown -h now 或者poweroff 3、等待2分钟关机并重启动&#xff0c;执行如下命令&#xff1a; shutdown -r…

深入理解Apache Commons Pool2池化技术

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 在现代软件开发中&#xff0c;为了提高性能和资源利用率&#xff0c;开发者们经常使用池化技术来管理那些创建和销毁代价较高的对…

LeetCode108题:将有序数组转换为二叉搜索树(python3)

一个容易想到的思路&#xff1a;使用 nums 中最靠近中心的位置作为整棵 BST 的根节点&#xff0c;确保左右子树节点数量平衡。随后递归构造 nums 中下标范围为 [0,mid−1]作为左子树&#xff0c;递归构造 nums 中下标范围为 [mid1,n−1]作为右子树。 # Definition for a binar…

I2C学习总结

i2c概述 I2C&#xff08;Inter-Intergreted Circuit&#xff09; 是一种串行通信协议&#xff0c;用于集成电路之间完成数据传输&#xff0c;i2c用广泛用以各种领域&#xff0c;包括电子设备、嵌入式系统、工业自动化等&#xff1b; i2c仅仅只是一个数据传输的协议&#xff0c…

【精解前端八股手写题】深入浅出柯里化

柯里化模板 柯里化是什么基本概念偏函数 柯里化有什么用场景1&#xff1a;拆分计算场景2&#xff1a;工厂函数 如何实现柯里化基础学习版&#xff1a;新人入门极简精华版&#xff1a;一行代码魔改升级版&#xff1a;闭包乱炖 柯里化是什么 基本概念 前端中的柯里化&#xff0…

逻辑斯特 + 神经网络梯度下降公式推导 + 向量化

全部推导来自吴恩达老师的视频课&#xff0c;下面仅作整理 逻辑斯特 神经网络

Vue+OpenLayers7入门到实战:使用webgl图层叠加超大量Point点要素,解决叠加超过一百万数据量点位导致浏览器卡住变慢的问题

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章介绍如何使用OpenLayers7在解决地图上叠加超过几千以上要素点就开始变慢,一万以上的要素点的时候,浏览器页面就开始卡顿或直接卡死,甚至浏览器会弹出是否等待页面加载的提示。 这时候要怎么优化?OpenLayers官…

win10安装Ubuntu22.04LTS及深度学习相关配置详细教学

由于之前Ubuntu系统硬盘空间分配的不够&#xff0c;又去看了一下发现扩容很很麻烦。加以发现自己前面安装的深度学习环境版本与实际要用的不符&#xff0c;所以当机立断决定直接重装系统。 Ubuntu系统安装 参考视频&#xff1a;一看就会&#xff01;8分钟真机安装【Ubuntu/Wi…