`
Aga
  • 浏览: 218671 次
  • 性别: 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` 接口,并且支持深拷贝功能。深拷贝是一种复制对象的方式,它不仅复制对象本身,还复制对象引用的...

    对象克隆(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`接口。这个接口...

    java深度克隆

    ### Java深度克隆详解 #### 一、引言 在Java开发过程中,对象拷贝是一项常见操作。...无论是使用`Cloneable`接口还是序列化与反序列化,深度克隆都能有效地解决对象拷贝带来的问题,提高程序的稳定性和安全性。

    编程语言java对象复制.pdf

    在给出的内容部分中,通过具体的Java代码示例,讨论了在Java中实现对象复制的机制,特别是通过实现Cloneable接口和重写Object类的clone方法来完成对象的浅复制与深复制。 知识点一:Java对象复制的基本概念 在Java...

    Java原型模式

    在Java中,原型模式通过实现Cloneable接口和覆盖clone()方法来复制对象,避免了使用构造函数进行深度复制的复杂性。接下来我们将深入探讨Java原型模式的核心概念、实现方式以及实际应用。 ### 核心概念 1. **原型...

    Java Clone(类的复制)实例代码

    在Java中,如果一个类想要实现`Cloneable`接口并且重写`clone()`方法,那么就可以支持克隆操作。 首先,让我们看第一个实例: ```java public class A implements Cloneable { public String str[]; A() { str...

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

    抽象类和接口 ...通过这个实验,我们学习了抽象类、接口、Cloneable 接口和多态性的概念,并掌握了如何使用它们来编写 Java 程序。我们还学习了浅拷贝和深拷贝的概念,并掌握了如何消除浅拷贝的方法。

    原型模式实践代码

    在Java、C#等面向对象的语言中,原型模式通过实现`Cloneable`接口或使用序列化机制来实现对象的复制。在这个"原型模式实践代码"中,我们可以预期看到如何在实际编程中应用这一模式。 在Java中,`Cloneable`接口是...

Global site tag (gtag.js) - Google Analytics