`
colorlife
  • 浏览: 132351 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

使用对象序列化进行克隆

阅读更多

摘自java核心技术

 

注意:效率较低

 

class SerialCloneable implements Cloneable, Serializable{
	public Object clone()
	{
		try{
			//save the object to a byte array
			ByteArrayOutputStream bout = new ByteArrayOutputStream();
			ObjectOutputStream out = new ObjectOutputStream(bout);
			out.writeObject(this);
			out.close();
			
			//read a cline of the object from the byte array
			ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
			ObjectInputStream in = new ObjectInputStream(bin);
			Object ret = in.readObject();
			in.close();
			
			return ret;
		}catch (Exception e) {
			// TODO: handle exception
			return null;
		}
	}
}
分享到:
评论

相关推荐

    克隆和序列化(Java )

    在网络传输中,可以将对象序列化后发送,接收端再进行反序列化。 5. **示例**:`序列化.txt`可能包含以下代码: ```java import java.io.*; class SerializableClass implements Serializable { private ...

    关于 Java 对象序列化您不知道的 5 件事

    Java对象序列化是Java平台的一项重要特性,它允许将对象的状态转换为字节流,以便存储、传输或恢复。在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序...

    java序列化和反序列化的方法

    * 序列化时,需要使用 ObjectOutputStream 将对象序列化为字节流。 * 反序列化时,需要使用 ObjectInputStream 将字节流反序列化回对象。 * 序列化和反序列化过程中,需要注意版本号问题,否则可能会导致反序列化...

    Java中对象的序列化方式克隆详解

    总的来说,Java的对象序列化和克隆是两个重要的概念,它们在数据持久化、网络通信等方面有着广泛的应用。通过理解这些技术,开发者可以更好地设计和实现复杂的系统,提高代码的可维护性和复用性。

    KryoJava序列化和克隆框架具有快速高效自动的特点

    6. **串行化与反串行化的API**:Kryo提供了简洁易用的API,使得开发者可以轻松地将对象序列化到字节数组、输入/输出流或者文件中,并且反序列化回来。 7. **兼容性**:Kryo虽然不是Java标准的序列化机制,但它能很...

    Java对象序列化

    ### Java对象序列化详解 #### 一、Java对象序列化概念 Java对象序列化是指将一个Java对象的状态信息转换成可以存储或传输的形式的过程。在这个过程中,对象的信息被编码成一系列字节,以便可以在文件系统中保存...

    关于Java对象序列化您不知道的5件事Java开发Java

    Java对象序列化是Java开发中的一个重要概念,它允许我们将Java对象转换为字节流,以便存储、传输或在不同时间点恢复。以下是五个可能不为人知的关于Java对象序列化的知识点,这些知识点对于深入理解Java开发至关重要...

    java序列化原理与算法

    2. **对象持久化**:为了将内存中的对象状态保存到磁盘上,以备后续使用,也需要将对象序列化。 3. **对象复制**:在某些情况下,需要创建对象的精确副本,序列化是实现这一目的的有效手段之一。 #### Java序列化的...

    序列化与持久化相同点跟不同点

    或者使用XML、JSON等方式将对象序列化后存储在文件中。 4. **性能考量:** - **序列化**过程中可能会消耗较多的计算资源,尤其是当对象图很大时。 - **持久化**除了要考虑数据的存储效率外,还需要考虑查询性能等...

    对象的写入与读取。将一个类的对象(例如:Calendar)写入到文件,然后顺序读出该对象,并验证读出的对象是否原始对象的克隆。

    1. **对象序列化**:对象序列化是将对象的状态信息转换成字节流的过程,以便存储到磁盘或者通过网络进行传输。在Java中,如果一个类想要支持序列化,它需要实现`java.io.Serializable`接口。在这个例子中,`Calendar...

    java中对象的序列化与反序列化深入讲解

    Java中的对象序列化和反序列化是Java标准库提供的用于持久化对象状态的重要特性。对象序列化是指将Java对象转换为字节序列的过程,而反序列化则是将这些字节序列恢复为原始对象的过程。这一过程对于数据的存储、网络...

    clone 深度克隆对象

    二是使用序列化和反序列化技术。前者需要特别注意的是,只有实现了Cloneable接口的类才能调用默认的clone()方法,否则会抛出CloneNotSupportedException异常。此外,如果对象内部包含不可克隆的对象(如final类型的...

    Java对象(最后面是序列化的知识)1

    Java编程语言中,对象的创建和管理涉及到一系列...总结来说,Java对象的生命周期涉及类加载、初始化,以及对象的创建、克隆、序列化和反序列化等步骤,每一步都可能需要特定的处理和优化,以满足不同的需求和安全考虑。

    如何进行Java对象的克隆.pdf

    这是因为序列化可以将对象的所有成员变量转换为字节流,然后可以将字节流反序列化成一个新的对象。 在 Java 中,Object 类的 clone() 方法提供了克隆的功能,但是这个方法的缺省实现会抛出 ...

    java 对象克隆

    对于复杂的对象结构,可以使用序列化和反序列化技术来实现深克隆。首先,将对象序列化为字节数组,然后反序列化为新的对象。这种方法可以确保所有引用类型的对象也被复制。 ```java import java.io.*; public ...

    java序列化

    ### Java对象序列化详解 #### 一、Java对象序列化概念 Java平台提供了一种机制,使得开发人员能够在内存中创建可复用的对象。通常情况下,这些对象的存在依赖于JVM(Java虚拟机)的运行状态,即一旦JVM停止运行,...

    java深度克隆

    2. **序列化对象**:通过调用`ObjectOutputStream`的`writeObject()`方法将传入的对象序列化,并存储到`ByteArrayOutputStream`中。 3. **创建输入流**:使用`ByteArrayOutputStream`中的字节数组创建`...

    java对象复制克隆

    这种方法简单,但不适用于所有对象,因为有些对象可能不适合序列化,或者序列化过程可能会丢失某些信息。 ```java public class DeepCopy implements Serializable { private static final long serialVersionUID ...

    swift-Swift的MsgPack序列化和反序列化器

    3. **序列化对象**:要将Swift对象序列化为MsgPack字节,你可以使用`encode`方法。例如,对于一个简单的`Int`值: ```swift let value = 42 guard let serializedData = encoder.encode(value) else { fatal...

Global site tag (gtag.js) - Google Analytics