Java Cloneable和Serializeable

来源:互联网 发布:一分钱拼团靠谱的软件 编辑:程序博客网 时间:2024/04/30 00:53

Java Cloneable和Serializeable解析


一. Cloneable相关知识

java的所有对象都是保存在堆里的,而堆内的对象是全局共享的,也就是说对于不同的方法只要是能够得到某个对象的引用,它就能够随意修改对象内部的数据,有时我们只想让方法得到某个对象的拷贝,即内存中存在完全相同的两个或者多个对象,就需要进行对象的克隆。
如果想要某类类的对象是可以被克隆的,则该类需要实现cloneable接口,但是在java中cloneable接口源码是一个空的,没有定义任何的方法,原因是在Object类中对其进行了定义。
因此需要克隆的话只需要完成如下两步:

  1. 让该类实现java.lang.Cloneable接口;
  2. 重写(override)Object类的clone()方法,并且在方法内部调用持有对象的clone()方法;

二.Serializeable

在没有序列化之前,每个保存在堆中的实例对象都是有其特定的状态的,实例化的作用就是讲类对象的实例瞬时状态以特定的方式保存起来。因为在JVM处于运行的时候,这些堆中的对象才可能存在,换言之,对象的存在时长是不会长于JVM的运行时长的,但是有的时候我们需要在JVM停止运行时将这些对像持久的保存起来(和数据的持久化相似),并在JVM重新运行的时候能够以原来的瞬时状态将其重新加载,则使用到了序列化的知识。

0 0
原创粉丝点击