`
xudongcsharp
  • 浏览: 477310 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Serializable接口

    博客分类:
  • Java
 
阅读更多
在Java中java.io.Serializable 用于实现对象的序列化而开发的接口。



java.io.Serializable接口是一个没有任何方法和属性的接口只提供一个标示的作用。



所有要序列化的对象都要实现Serializable接口。



未实现序列化接口的对象进行序列化的时候发生的错误。
Java代码  收藏代码

    java.io.NotSerializableException: com.javaeye.xiaobian.seri.User 
        at java.io.ObjectOutputStream.writeObject0(Unknown Source) 
        at java.io.ObjectOutputStream.writeObject(Unknown Source) 
        at com.javaeye.xiaobian.seri.SerialzeTest.main(SerialzeTest.java:19) 



序列化:


Java代码  收藏代码

    File test = new File("e:\\test.seri");  
    FileOutputStream out = new FileOutputStream(test);  
    ObjectOutputStream oout = new ObjectOutputStream(out);  
    User user = new User();  
    user.setName("example1");  
    oout.writeObject(user);  
      
    FileInputStream in = new FileInputStream(test);  
    ObjectInputStream oin = new ObjectInputStream(in);  
    User u = (User) oin.readObject();  
    System.out.println(u.getName());  
    System.out.println(u.getPass());  




User类:


Java代码  收藏代码
    public class User implements Serializable {  
      
        private static final long serialVersionUID = -7020619477594468968L;  
        private String name;  
        private String pass;  
      
        public String getName() {  
            return name;  
        }  
      
        public void setName(String name) {  
            this.name = name;  
        }  
      
        public String getPass() {  
            return pass;  
        }  
      
        public void setPass(String pass) {  
            this.pass = pass;  
        }  
    }  






serialVersionUID的作用:



1.先保存一个序列化的对象User。

2.更改对象的属性添加Pass属性。

3.反序列化User对象这个时候获取的Pass属性为null。

4.如果没有serialVersionUID属性则会抛出异常。


原文出自:http://jimi68.iteye.com/blog/405710
分享到:
评论

相关推荐

    Java对象Serializable接口实现详解

    Java对象Serializable接口实现详解 Java中的Serializable接口是java.io包中定义的,用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段,只是用于标识可序列化的...

    java中Serializable接口作用详解

    Java 中的 Serializable 接口作用详解 Java 中的 Serializable 接口是一个非常重要的接口,它允许对象被序列化,换句话说,就是将对象转换成字节序列,以便于存储或通过网络传输。Serializable 接口的作用主要体现...

    android Activity之间数据传递 Parcelable和Serializable接口的使用

    android Activity之间数据传递 Parcelable和Serializable接口的使用的具体实例代码,详情请看>http://blog.csdn.net/js931178805/article/details/8268144

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

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

    Intent传递对象Serializable

    本教程将详细讲解如何通过Serializable接口来实现Intent对象的传递。 首先,了解Serializable接口。在Java中,Serializable是用于序列化和反序列化的接口。当一个类实现了这个接口,它的实例就可以被转化为一串字节...

    析Android中的Serializable序列化.rar_Serializable _android

    在Android开发中,Serializable接口是实现对象序列化的重要方式,它是Java平台标准的一部分,但在Android环境中也有广泛的应用。本文将深入探讨Android中的Serializable序列化机制,包括其原理、使用场景以及注意...

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

    3. 对于Serializable,`putSerializable()`和`getSerializable()`可以处理任何实现了Serializable接口的对象,包括ArrayList或其他集合类。 4. 不同的数据类型必须使用对应的方法进行传递,不能混淆使用。 5. 传递后...

    Android面试专题(七):Serializable 和 Parcelable 的区别

    面试官:“说一下Serializable接口和Parcelable接口的区别吧。” 我们可以从以下两方面来说一说~ 首先我们先给两者来个简单的介绍: 1.定义 Serializable(Java自带): Serializable是序列化的意思,表示将一个对象...

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

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

    Android序列化——Serializable与Parcelable

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

    可序列化接口Serializable

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

    深入探索Java对象的序列化

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

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

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

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

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

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

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

    Parcelable与Serializable

    1. **Serializable接口** `Serializable`是Java提供的标准序列化接口,无需实现任何方法,只需在类上添加`implements Serializable`即可。对象序列化后可以写入文件或网络流。然而,`Serializable`效率较低,因为它...

    Java 串行化(序列化)Serializable/Externalizable

    **一、Serializable接口** `Serializable`是Java中的一个标记接口,没有包含任何方法。当一个类实现这个接口时,表明该类的对象可以被序列化。Java的序列化机制会遍历对象的所有字段,并将它们的值写入字节流。需要...

    反序列化失败的原因报告

    Serializable 接口是一个标记接口,表明该类可以被序列化。实现了 Serializable 接口的类需要提供一个称为 serialVersionUID 的静态final变量,该变量用于标识类的版本。 serialVersionUID serialVersionUID 是一...

    intent传递自定义对象

    当我们需要在Intent中传递自定义对象时,Android提供了几种方式来实现这一功能,其中一种常用的方法是将自定义对象转换为Serializable接口的实现。以下我们将详细探讨如何通过Intent传递自定义对象以及涉及到的相关...

Global site tag (gtag.js) - Google Analytics