java 克隆有什么用_java中的克隆技术具体有什么应用?
克隆(Clone),Java有一些限制:
1、被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。Cloneable 接口实际上是个标识接口,没有任何接口方法。
2、实现Cloneable接口的类应该使用公共方法重写 Object.clone(它是受保护的)。某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。
3、在Java.lang.Object类中克隆方法是这么定义的:
protected Object clone()
throws CloneNotSupportedException
创建并返回此对象的一个副本。表明是一个受保护的方法,同一个包中可见。
按照惯例,返回的对象应该通过调用 super.clone 获得。
举个例子说吧,现在有一个对象比如叫foo,你需要在创建当前对象的一个副本作为存根,这时候就会用到克隆:假如你不用Clone,那么你可以先new一个对象foo1:Foo foo1=new Foo(),然后用foo要产生一个副本,那副本要不要内存?----当然要了,那就对了!既然需要内存,(不克隆的情况下)你不new还有什么办法呢?请大家时刻铭记对象是Java运行时产生的,驻留在计算机内存中。
取消
评论
java 克隆有什么用_java中的克隆技术具体有什么应用?相关推荐
- java为什么要用反射_Java中为什么需要反射?反射要解决什么问题?
一句话概括就是使用反射可以赋予jvm动态编译的能力,否则类的元数据信息只能用静态编译的方式实现,例如热加载,Tomcat的classloader等等都没法支持 Java中编译类型有两种: 静态编译:在 ...
- java boolean几个字节_Java中boolean类型到底占用多少个字节?
1.时间:2017-07-03 07:37:06YuanMxy 2.问题描述:今天在复习java基础的时候发现一小问题,Java中boolean类型到底占用多少个字节? 3.问题解答: (1)什么是b ...
- java 基本类型的引用_Java中的基本数据类型与引用数据类型
一.基本数据类型 byte.short.int.long(整数类型) float.double(浮点数类型) char(字符型) boolean(布尔类型 ) Java数据大多数存放在堆栈中.栈区:存 ...
- java常见的报错_Java中常见的错误有哪些?
原标题:Java中常见的错误有哪些? 1.java.lang.Error 错误.是所有错误的基类,用于标识严重的程序运行问题.这些问题通常描述一些不应被应用程序捕获的反常情况. 原因: 1.对系统所访 ...
- java i 线程不安全_java中的++i是线程安全的吗?
java中的++i是线程安全的吗?为什么?怎么使它线程安全呢? 先说答案: 非线程安全 先说下为什么是非线程安全的? 从Java内存模型说起 Java内存模型规定了所有的便利都存储在主内存中,每个线程 ...
- java原始类型和引用类型_Java中的8种原始类型
java原始类型和引用类型 几年前,当我开始编辑Java Basics系列时,我认为将一些非常详细的信息拉到自己的帖子中是很有意义的. 这样,初学者的内容就更容易消化了. 首先,我将介绍有关Java的 ...
- java如何使截取字符串_java中如何截取字符串中的指定一部分
java中如何截取字符串中的指定一部分 关注:136 答案:4 mip版 解决时间 2021-02-06 13:27 提问者妳涐執唸汰深 2021-02-06 08:56 精选 比如 F:\wor ...
- 随机数在java 自旋锁的运用_Java 中自旋锁的实现
Java中初始是使用mutex互斥锁,因为互斥锁是会线程等待挂起,而对获取锁后的操作时间比较短暂的应用场景来说,这样的锁会让竞争锁的线程不停的park,unpark 的操作,这样的系统的调用性能是非常 ...
- java swap函数的包_java中swap函数
? ? ? 第1章 第2章 第3章 第4章 java语言概述 Java语言基础 对象与类 ...("swap方法里,a的值是" + a + ";b的值 是" + ...
最新文章
- Review学生作业管理系统
- MacBook 如何通过命令终端进入 U 盘内的目录
- dhcp failover linux,ISC dhcp failover的mclt参数很重要啊
- 两分钟让你变成jar包制作高手
- 数据库之MySQL ERROR 1698 (28000) 错误:Access denied for user 'root'@'localhost' error【摘抄】...
- 3.2 Lucene实战:一个简单的小程序
- 双纵坐标的绘图命令_Matplotlib绘图 | 快速定义图表样式的小技巧
- 我与前端之间不得不说的三天两夜之html基础
- 用python画图代码-【Matplotlib】利用Python进行绘图
- mysql 组复制 不一致_MySQL主从复制什么原因会造成不一致,如何预防及解决
- Python File文件方法操作open()
- 配置JDK环境变量(详细图文教程)
- cocosbuilder3.0 使用小记
- 【数据仓库】 BI 项目管理之角色和职责
- DIAMOND: 超快的蛋白序列比对软件
- littleVGL开发:littleVGL的介绍
- Maya mtoa使用Houdini Mplay当渲染窗口
- win10外接屏显示分辨率不匹配问题解决
- 年审是当月还是当天_车辆年审时间当月到当月办理可以吗
- NeurIPS 会议怎么读
热门文章
- linux clk驱动框架
- 解析grib格式数据库eccodes的安装
- word隐藏段落标记,回车三角
- 手机沙盒隔离软件_360隔离沙箱下载_360隔离沙箱独立版下载 v3.0.0 官方版_天天下载手机版...
- Html 单选按钮 多选按钮 下拉列表
- 多线程编程 ----- 四种同步方法
- 股市的通俗经济学原理
- DRV8818步进电机一种应用场景及实现思路
- python匿名函数lambda_Python中什么情况下应该使用匿名函数lambda
- 单元测试利器——手把手教你使用Mockito