`
adoph
  • 浏览: 5376 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

为何实现Serializable接口

 
阅读更多
一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。
因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
什么情况下需要序列化
a)当你想把的内存中的对象写入到硬盘的时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
再稍微解释一下:a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。
分享到:
评论

相关推荐

    Java对象Serializable接口实现详解

    在实现Serializable接口时,需要注意的是必须提供一个固定的serialVersionUID变量,这个变量用于标识该类的版本号,以便在反序列化时可以正确地还原对象。例如,在上面的例子中,我们定义了一个User类,并实现了...

    java中Serializable接口作用详解

    在实现 Serializable 接口时,需要实现 writeObject() 和 readObject() 方法,这两个方法分别负责将对象转换成字节序列和将字节序列转换回对象。 在使用 Serializable 接口时,需要注意以下几点: * 在实现 ...

    Intent传递对象Serializable

    在Android中,Intent的额外数据部分(extras)只能存储Parcelable或Serializable类型的对象,因此,当我们需要通过Intent传递自定义对象时,可以选择实现Serializable接口。 **步骤1:实现Serializable接口** 为了...

    可序列化接口Serializable

    在Java编程语言中,`Serializable`接口是一个非常重要的概念,它是实现对象持久化的关键。本文将深入探讨`Serializable`接口的细节,以及与其相关的高级知识。 `Serializable`接口是Java中的一个标记接口,没有包含...

    Serializable接口的作用_动力节点Java学院整理

    Serializable接口的作用 在 Java 中,Serializable 接口扮演着非常重要的角色,它允许对象被序列化和反序列化,实现对象的持久化存储和网络传输。本文将详细介绍 Serializable 接口的作用和实现原理,以及它在 Java...

    Java 对象序列化详解以及实例实现和源码下载

    一种是实现Serializable接口 另一种是实现Externalizable接口 区别: 实现Serializable接口 1 系统自动储存必要的信息 2 Java内建支持,易于实现,只需实现该接口即可,无须任何代码支持 3 性能略差 实现...

    Android序列化——Serializable与Parcelable

    只需让类实现Serializable接口,系统就会自动处理序列化和反序列化。使用`writeObject()`和`readObject()`方法可以自定义序列化的行为。 优点: - 实现简单,只需要在类上添加`implements Serializable`即可。 - ...

    析Android中的Serializable序列化.rar_Serializable _android

    在Android中,当一个类实现Serializable接口,那么它的实例就可以被序列化。序列化的过程是将对象转换为字节流,而反序列化则是将字节流恢复为原来的对象状态。 二、序列化的应用场景 1. 数据持久化:序列化可以将...

    PHP自定义序列化接口Serializable用法分析

    实现Serializable接口的类必须实现这两个方法,分别用于自定义对象的序列化和反序列化过程。具体来说,当对象需要被序列化时,PHP会自动调用对象实现的serialize()方法;而在反序列化时,则会调用unserialize()方法...

    轉Serializable至Stream

    任何实现了`Serializable`接口的类的对象都可以被序列化。在Java中,通过实现此接口,对象的实例字段将被转换为字节流,这允许将对象保存到磁盘或在网络上传输。例如: ```java public class MySerializableClass ...

    android中Intent传递对象的两种方法(Serializable,Parcelable)

    1. **实现Serializable接口**:首先,你需要让你的对象类实现Serializable接口,例如: ```java public class MyObject implements Serializable { // 类的属性 } ``` 2. **放入Intent**:然后,你可以将这个对象...

    bundle传递基本数据,Parcelable类型数据,Serializable类型数据

    假设有一个名为`MySerializable`的类实现了Serializable接口: ```java public class MySerializable implements Serializable { // 省略属性和构造函数 } // 传递和接收Serializable对象 MySerializable ...

    实现Parcelable接口的方式借助Intent实现Android工程中Activity之间Java对象的传递.zip

    这些数据可以通过putExtra()和getExtra()方法进行添加和获取,支持基本数据类型以及Serializable接口的实现类。 然而,对于性能考虑,Android推荐使用Parcelable接口而非Serializable来传递复杂的对象。Parcelable...

    Android通过Parcelable和Serializable实现各种类型嵌套序列化

    实现Serializable接口的类会被自动处理,无需编写额外的序列化代码,但效率相对较低。 1. 在需要序列化的类上添加`implements Serializable`:这样,Java会自动生成序列化所需的元数据,如serialVersionUID。 2. ...

    序列化 serializable demo

    首先,`Serializable`接口是Java中用于实现序列化的标志接口。它没有定义任何方法,但当一个类实现了这个接口,Java的ObjectOutputStream就可以将该类的对象写入到流中。例如,`MySerializable.java`和`Product.java...

    深入探索Java对象的序列化

    要序列化的对象应该实现Serializable接口。 Serializable接口是一个标识接口,没有抽象方法。 Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。 ...

    java serializable 序列化与反序列化

    2. **为什么需要序列化**:序列化有以下主要用途: - 持久化对象:将对象保存到磁盘,即使程序关闭后,也能恢复对象状态。 - 远程通信:在网络间传输对象,序列化可以使对象在不同JVM之间传递。 - 节省内存:通过...

    浅谈java中为什么实体类需要实现序列化

    实现Serializable接口是Java中实体类需要实现的重要功能,它使得实体类可以被序列化为二进制文件,并可以在需要时被反序列化回来。因此,在设计实体类时,需要考虑实现Serializable接口,以便在需要时可以将其序列化...

    Serializable java序列号

    在Java中,如果一个类需要支持序列化,那么该类需要实现`java.io.Serializable`接口,虽然这个接口没有定义任何方法,但是它的存在作为一个标记,表明该类的对象可以被序列化。 序列化的优点主要有以下几点: 1. **...

    intent传对象

    "intent传对象"这个主题主要涉及如何使用Intent来传递自定义对象,这里我们将详细讲解如何通过实现Serializable接口来实现这一功能。 首先,我们了解Intent的基本用法。Intent通常包含两部分:Action(操作)和...

Global site tag (gtag.js) - Google Analytics