`
meikebo
  • 浏览: 16707 次
社区版块
存档分类
最新评论

JAVA采用串行化方法实现深拷贝

    博客分类:
  • JAVA
阅读更多
实现JAVA深拷贝,有两种方法。
方法一,传统重载clone()方法,但当类中有很多引用时,比较麻烦。
方法二,采用序列化方法,重载clone()方法,实现简单。
如下,是方法二实现代码:
public Object clone()
	{
		Object object=null;
		try
		{
			ByteArrayOutputStream ot = new ByteArrayOutputStream();
			ObjectOutputStream oo = new ObjectOutputStream(ot);
			oo.writeObject(this);
			ByteArrayInputStream it = new ByteArrayInputStream(ot.toByteArray());
			ObjectInputStream oi = new ObjectInputStream(it);
			object = oi.readObject();
			
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return object;
		
	}
分享到:
评论

相关推荐

    【IT十八掌徐培成】Java基础第16天-03.串行化-深度复制.zip

    Java串行化是Java编程语言中的一个重要概念,用于将对象的状态转换为字节流,以便存储在磁盘上或在网络中传输。这个过程被称为对象的序列化,而将字节流恢复为对象的过程称为反序列化。在Java中,实现串行化的主要...

    Java 虚拟机.pdf

    Java虚拟机提供了多种垃圾收集器,如串行、并行、并发等,针对不同应用场景选择合适的收集器组合,以达到性能与内存使用的平衡。垃圾收集策略包括分代收集、复制算法、标记-清除算法、标记-整理算法等。 四、直接...

    面试题全集(周瑜).pdf

    * HashMap的Put方法深拷贝和浅拷贝 * CopyOnWriteArrayList的底层原理 三、Java多线程编程 * 什么是线程安全? * 什么是守护线程? * ThreadLocal的底层原理 * 并发、并行、串行之间的区别 * Java死锁如何避免? *...

    原型模式.doc

    在.NET中,可以使用`Object`类的`MemberwiseClone()`方法来实现对象的浅拷贝,或者通过序列化和反序列化来实现深拷贝。在Java中,浅拷贝只是复制对象的引用,而深拷贝则会递归复制对象的所有属性,包括嵌套的对象。 ...

    20个最佳的Java集合框架面试题目.zip

    15. **集合的复制**:clone()、Arrays.copyOf()、List的subList()以及深拷贝和浅拷贝的概念。 16. **Collection的流式编程**:Java 8引入的Stream API可以将集合转换为流,支持并行和串行操作,提供函数式编程风格...

    【美团】Java 岗 154 道面试题1

    32. **深拷贝与浅拷贝**:深拷贝创建完全独立的对象副本,包括引用的对象;浅拷贝只复制对象本身,不复制引用的对象。 33. **System.gc() 和 Runtime.gc()**:建议开发中避免使用,它们是请求垃圾回收的手段,实际...

    java面试题及答案-非常全面(包括基础、网络、数据结构、算法及IT大厂面经)

    - **赋值运算符重载**:用于实现深拷贝,避免资源竞争。 ### 空指针调用函数 - **风险**:会导致未定义行为,例如程序崩溃。 - **预防措施**:在调用前检查指针是否为空。 ### Hadoop #### MapReduce - **原理*...

    jvm_code-master.rar

    1. 对象创建与内存分配:包括浅拷贝、深拷贝、对象池等概念,以及如何优化对象创建过程。 2. 内存管理与垃圾收集(GC):讲解不同类型的垃圾收集器,如串行GC、并行GC、CMS和G1,以及内存泄漏检测和预防。 3. 类...

    Netty 35道面试题和答案.docx

    2. 传输快:Netty实现了零拷贝技术,减少了内存拷贝,从而提升了数据传输效率。 3. 封装好:Netty对NIO进行了深度封装,提供了一套简洁易用的API,降低了开发难度。 4. 功能强大:Netty内置了多种编解码器,支持多种...

    test110:测试代码

    实现这些协议的类可以创建对象的浅拷贝或深拷贝。 10. **异常处理(Exception Handling)**: Objective-C支持异常处理,通过`@try`、`@catch`、`@throw`等关键字来捕获和处理运行时错误。 在`test110-master`这...

Global site tag (gtag.js) - Google Analytics