`

学习学习Serializable接口

阅读更多

Object serialization的定义:
Object serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。 

Object serialization主要用来支持2种主要的特性:
1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时,就需要用到serializaiton机制来发送参数和接收返回直。

比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以在这台Unix机器上正确地重构这个对象。

2。Java的JavaBeans.   Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。

比如,Servlet调用一个业务处理类,返回了一个POJO,而Servlet与业务处理类是分布式的,这时就需要序列化这个POJO了。

在Hibernate项目中,Hibernate并不要求持久化类必须实现java.io.Serializable接口,但是对于采用分布式结构的Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口,此外,在Java Web应用中,如果希望对HttpSession中存放的Java对象进行持久化,那么这个Java对象所属的类也必须实现Serializable接口。

在实际项目中,实现不实现Serializable接口要根据你的需求而定,有些时候实现主要是为了能够让代码有更好的适应性。

分享到:
评论

相关推荐

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

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

    序列化 serializable demo

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

    Serializable在C#中的作用.NET 中的对象序列化

    通过本篇文章的学习,相信您已经掌握了基本序列化、选择性序列化及自定义序列化的原理与实践方法。此外,还了解了如何使用不同的序列化器以及在序列化过程中需要注意的问题。希望这些知识能帮助您在实际项目中更加...

    学习Java接口的例题

    在实际项目中,接口常用于定义服务合同,如`java.util.Comparator`或`java.io.Serializable`。这些接口规定了对象如何与其他对象交互,而无需关心具体实现的细节。 此外,Java 8还引入了静态接口方法,它们属于接口...

    Parcelable与Serializable

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

    Intent传递对象之Serializable和Parcelable的区别

    Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、实现Serializable接口、2、实现Parcelable接口,接下来通过本文给大家介绍Intent传递对象之Serializable和Parcelable...

    C# interface学习经验浅谈

    - `attributes`:用于指定接口的特性,如`Serializable`等。 - `modifiers`:可选的修饰符,在C#中通常省略。 - `identifier`:接口的名字,命名时通常以“I”开头。 - `base-list`:可选的基接口列表,用于继承其他...

    CELS(单词学习源码)

    通过实现`Serializable`接口,对象可以被转化为字节流并写入磁盘,之后再恢复为原对象。在这个项目中,用户的学习进度或者记忆的单词可能被序列化后保存,便于下次打开应用时继续学习。 异常处理是任何健壮程序的...

    Java-se-io学习 Java学习资料源码

    9. 序列化:Java提供Serializable接口,实现该接口的类可以被序列化,保存其状态。 在这个"Java_se_io-master"资源包中,你可以找到相关的源代码示例,通过实践来深入理解和应用上述概念。源码可能涵盖了文件操作、...

    Head First Java学习.zip

    11. **对象的序列化与反序列化**:理解对象持久化的概念,学习如何使用Serializable接口实现对象的序列化和反序列化。 12. **多线程**:了解并发编程,掌握Thread类和Runnable接口,以及同步控制方法synchronized和...

    实验一java对象串行化编程.doc

    Serializable 接口是 Java 中的一个标记接口,它不包含任何方法,但它表示该类可以被串行化。要使一个类可以被串行化,需要实现 Serializable 接口并提供一个 serialVersionUID 变量。 在实验中,我们定义了一个 ...

    我的sybase学习资料

    标题中的“我的sybase学习资料”表明这是一组与Sybase数据库系统相关的学习材料,而描述中的“基础 + api文档”则暗示了这些资料涵盖了Sybase的基础知识和API接口的详细信息。通过压缩包内文件的名称,我们可以推测...

    java学习比记-北大青鸟时做的笔记,每堂课都有

    - **对象序列化**:通过Serializable接口,可将对象转换为字节流,便于存储或在网络上传输。 6. **多线程** - **线程概念**:Java支持多线程编程,允许多个任务同时执行。 - **线程创建**:通过实现Runnable接口...

    C# remoting接口实现简单示例

    接下来,我们需要创建一个实现此接口的类,并标记为`[Serializable]`,以便能够跨进程或跨网络传输: ```csharp [Serializable] public class MyRemotingClass : MarshalByRefObject, IMyRemotingInterface { ...

    java2全方位学习书源码

    - 对象序列化:展示了如何实现Serializable接口进行对象的持久化存储。 6. **多线程** - 线程的创建:通过Thread类和Runnable接口创建线程。 - 线程同步:涉及synchronized关键字,wait()、notify()和notifyAll...

    JAVA课件(关于包和接口等的内容,异常处理,Java的输入与输出流)

    例如,`java.io.Serializable` 接口表示类的对象可以被序列化。在定义接口时,所有的方法默认都是抽象的(没有方法体)和公共的(public)。 3. 异常处理(Exception Handling): Java通过异常处理来处理程序运行...

    spring框架的学习--事务

    1. **编程式事务管理**:通过使用PlatformTransactionManager接口和TransactionDefinition接口,开发者可以直接在代码中控制事务的开始、提交、回滚等操作。虽然这种方式灵活,但容易导致代码与业务逻辑混杂,不易...

    学习之数据存储.zip

    7. **Parcelables与Serializable**: 在Android中,如果需要将对象传递到另一个Activity或者保存在Bundle中,需要实现Parcelable接口或Serializable接口。Parcelable是更高效的选择,而Serializable则相对简单,但...

    Java_用于大规模机器学习的灵活而强大的参数服务器.zip

    Java提供内置的`Serializable`接口,配合`ObjectOutputStream`和`ObjectInputStream`可以实现简单的序列化。对于更高效的数据交换,可以考虑使用第三方库如Google的`Protocol Buffers`、Apache的`Avro`或Facebook的`...

    安卓通信接口大全

    总之,"安卓通信接口大全"是一个综合性的学习资源,涵盖了Android开发中各种组件间通信的方式,对于开发者来说,理解和掌握这些通信机制对于构建功能丰富的Android应用至关重要。而`AccessPort137`的实例则提供了...

Global site tag (gtag.js) - Google Analytics