`
Aga
  • 浏览: 221328 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

an example of cloneable

    博客分类:
  • J2SE
阅读更多
The following code describes how the cloneable works
package org.cxz.clone;

import java.util.concurrent.atomic.AtomicInteger;

public class Target implements Cloneable{
	public AtomicInteger num = null;

	@Override
	protected Object clone() throws CloneNotSupportedException {
		Target ret = new Target();
		ret.num = new AtomicInteger(num.get());
		return ret;
	}
	
	public static void main(String[] args){
		AtomicInteger oldNumber = new AtomicInteger(100);
		Target origin = new Target();
		origin.num = oldNumber;
		Target cloner = null;
		try {
			cloner = (Target)origin.clone();
		} catch (CloneNotSupportedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		cloner.num.addAndGet(100);
		System.out.println(origin.num);
		System.out.println(cloner.num);
	}
}

You can comment the method clone() and run the app again to find what the differences are.
分享到:
评论

相关推荐

    day16-Map、可变参数、Cloneable.pdf

    总的来说,Map接口提供了一种高效的方式来存储和检索键值对数据,可变参数简化了函数调用,Cloneable接口支持对象的克隆,而多线程则为并发编程提供了基础。理解和掌握这些知识点对于Java开发至关重要。

    Java中的深拷贝(深复制)和浅拷贝(浅复制) 示例代码

    - 实现`Cloneable`接口并重写`clone()`方法需要注意,`clone()`默认执行的是浅拷贝,需要在子类中显式调用`super.clone()`并处理引用类型的字段。 - 序列化和反序列化可能涉及性能开销,不适合大量或频繁的复制...

    Cloneable:使用C#Source Generator自动生成克隆方法

    安装可克隆您应该安装 : Install-Package Cloneable或者通过 .NET Core 命令行界面: dotnet add package Cloneable来自包管理器控制台或 .NET Core CLI 的任一命令都将下载并安装 Cloneable 和所有必需的依赖项。...

    cloneable-readable:安全地克隆可读流

    'use strict'var cloneable = require ( 'cloneable-readable' )var fs = require ( 'fs' )var pump = require ( 'pump' )var stream = cloneable ( fs . createReadStream ( './package.json' ) )pump ( stream . ...

    deep_cloneable:这个宝石给每一个ActiveRecord

    deep_cloneable 这个gem为每个ActiveRecord :: Base对象提供了进行深度克隆的可能性,该克隆包括用户指定的关联。 这是的Rails 3+升级。要求Ruby 1.9.3、2.0.0、2.1.5、2.2.2、2.3.0、2.4.4、2.5.5、2.6.3(已测试)...

    U10316024_HW_15_10:类 MyStack 实现 Cloneable 并使用深循环

    在本题目中,我们面临的是一个关于 Java 编程的任务,目标是实现一个名为 `MyStack` 的类,该类需要实现 `Cloneable` 接口,并且支持深拷贝功能。深拷贝是一种复制对象的方式,它不仅复制对象本身,还复制对象引用的...

    java.lang.CloneNotSupportedException(解决方案).md

    在Java编程语言中,`java.lang.CloneNotSupportedException`是一个运行时异常,通常发生在尝试克隆一个对象时,但该对象所对应的类没有实现`Cloneable`接口。`Cloneable`接口是Java中的一个标记接口,用于指示一个类...

    CloneNotSupportedException(解决方案).md

    若想实现对象的克隆,首先需要确保对象所属的类实现了 `Cloneable` 接口。 #### 2. 解决方案一:检查对象的可克隆性 - 在尝试克隆对象之前,需要检查该对象是否实现了 `Cloneable` 接口。 - 如果对象实现了 `...

    CloneNotSupportedException.md

    知识点7:在使用`clone()`方法时,需要处理异常`CloneNotSupportedException`,这是因为在调用`clone()`方法之前,需要检查该对象是否为`Cloneable`,否则即使对象不是`Cloneable`,也可能在调用`clone()`方法时抛出...

    对象克隆(clone)详解.docx

    默认的`Object.clone()`方法是受保护的,因此需要在实现`Cloneable`接口的类中重写`clone()`方法为公共方法。如果没有实现`Cloneable`接口并在实例上调用`clone()`,会抛出`CloneNotSupportedException`异常。 三、...

    Java深浅clone

    在Java编程语言中,`Cloneable`接口和`clone()`方法是两个重要的概念,它们用于对象复制。在本文中,我们将深入探讨Java中的浅克隆(shallow clone)和深克隆(deep clone),并结合测试代码进行分析。 首先,让...

    学习Java实验7抽象类和接口.pdf

    本实验主要讲解了Java中的抽象类和接口的概念和使用方法,并且深入探讨了 Cloneable 接口和 clone 方法在对象内容复制中的应用。 一、抽象类的概念和使用方法 在 Java 中,抽象类是一个不能被实例化的类,它提供了...

    java 原型模式

    这种模式的核心在于Java中的`Cloneable`接口和`clone()`方法。 首先,我们要了解`Cloneable`接口。在Java中,如果一个类想要实现克隆功能,必须实现`Cloneable`接口。这个接口没有定义任何方法,仅仅是一个标记接口...

    01-02-02-原型模式详解1

    `Cloneable`接口是用于标记对象可以被克隆,而`Serializable`接口则是用于对象的序列化和反序列化,但这通常用于跨网络传输或持久化存储,而不是直接的克隆。 首先,让我们看看如何使用`Cloneable`接口来实现原型...

    JAVA_对象克隆

    1. 实现`Cloneable`接口:为了让对象可以被克隆,首先需要在类声明中添加`implements Cloneable`。 2. 覆盖`clone()`方法:重写`clone()`方法,通常只需返回`super.clone()`,但要注意处理可能抛出的`...

    java对象复制.pdf

    3. 处理`CloneNotSupportedException`:尽管我们的类实现了`Cloneable`,但在某些情况下,如父类未实现`Cloneable`时,仍然可能会抛出异常,因此需要捕获并处理它。 当一个对象被`clone()`时,如果对象内部含有其他...

    原型模式代码示例

    在Java中,我们可以利用`java.lang.Cloneable`接口和`clone()`方法来实现原型模式。 在Java中,实现原型模式主要有两个步骤: 1. **实现Cloneable接口**:首先,我们需要让我们的类实现`Cloneable`接口。这个接口...

Global site tag (gtag.js) - Google Analytics