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

什么时候要用到Serializable呢

阅读更多
什么时候class 要实现Serializable这个接口呢?在Hibernate开发时,那些类是不是都要实现这个接口?
比如说,你编写了一款游戏,保存记录时把所有状态一一保存非常麻烦,这时就可以使用Serializable(序列化接口),它的作用是可以将一个对象实例序列化,序列化后你可以选择将它保存在你需要的位置。
相对的,读取后生成的对象所有属性(除了设置为瞬时值的属性)将和原对象的属性相同(只是内存地址不同)。
这样可以方便的将一个java对象写入到磁盘中,保存该对象的所有状态!
值得注意的是序列化的对象中包含的属性和其他对象都需要实现序列化接口,不然无法正常序列化!
在hibernate里,并非所有的实体类必须实现序列化接口,因为在hibernate中我们通常是将基本类型的数值映射为数据库中的字段。而基础类型都实现了序列化接口(String也实现了)。
所以,只有在想将一个对象完整存进数据库(存储为二进制码),而不是将对象的属性分别存进数据库,读取时再重新构建的话,就可以不用实现序列化接口。
分享到:
评论

相关推荐

    析Android中的Serializable序列化.rar_Serializable _android

    4. 任务调度:在Intent中传递复杂对象,或者在Handler中发送消息时,都需要用到序列化。 三、序列化过程 当一个类实现Serializable接口后,Java运行时系统会自动调用`writeObject()`和`readObject()`方法来完成序列...

    Parcelable与Serializable

    然而,`Serializable`效率较低,因为它会序列化对象的所有属性,包括transient和static修饰的,这可能导致不必要的性能开销。此外,序列化产生的字节流包含了大量的元数据,增加了数据量。 2. **Parcelable接口** ...

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

    当发送消息给远程对象时,就需要用到序列化机制来发送参数和接收返回值。 2. Java 的 JavaBeans:Bean 的状态信息通常是在设计时配置的。Bean 的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也...

    Android序列化之Parcelable和Serializable的使用详解

    一个对象要实现序列化操作,该类就必须实现了 Serializable 接口或者 Parcelable 接口,其中 Serializable 接口是在 Java 中的序列化抽象类,而 Parcelable 接口则是 Android 中特有的序列化接口。在某些情况下,...

    PHP常用类,开发中经常用到 你懂的

    - `Serializable`接口:实现此接口的类可以自定义序列化和反序列化方法,方便数据存储和恢复。 - `json_encode()`和`json_decode()`函数:用于JSON格式的序列化和反序列化。 4. **日期与时间**: - `DateTime`类...

    Intent传递对象

    显式Intent明确指定要启动的目标组件,而隐式Intent则通过ACTION、DATA等匹配规则寻找合适的接收者。在传递数据时,无论是哪种Intent,都需要用到`putExtra()`方法来添加额外的数据,然后在接收端通过`getExtra()`...

    json格式用到的包

    在Python中,处理JSON数据主要需要用到`json`这个标准库。下面我们将详细讨论如何使用`json`包进行JSON数据的操作。 1. **导入json模块** 在Python程序中,首先需要导入json模块来获取相关功能。这可以通过以下...

    android序列化实现

    序列化是将对象的状态转化为可存储或可传输的形式的过程,而在Android中,我们通常会用到两种主要的序列化方式:Parcelable和Serializable。 **Parcelable序列化** Parcelable是Android平台提供的一种高效的序列化...

    Android Intent传递数据大小限制详解

    在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化对象,Parcelable与Serializable。 Intent传递数据时,如果数据太大,可能...

    android activity之间传递对象

    当需要在不同的Activity之间共享数据时,就需要用到对象的传递。本篇将详细讲解如何在Android的Activity之间传递对象,主要涉及两种常见的实现方式:Parcelable和Serializable。 一、Parcelable接口 Parcelable是...

    面试官再问你什么是反射,就把这篇文章发给他!

    1. **什么是反射** 反射的核心在于Java虚拟机(JVM)能够在程序运行时动态地获取类的信息并进行操作。通常,编译器在编译阶段就知道了类型信息,但在反射中,我们可以在运行时才知道要处理的类,这极大地扩展了Java...

    Socket编程

    基于Serializable接口类进行电脑端和手机端的网络数据交互,其中没有用json传输数据, 此次程序是进行单个实体类提交或者通过list集合类进行整体提交的方式进行程序的数据交互, 再客户端还添加了判断手机端调用哪一...

    hibernate3.2用到的jar包

    实体类需要继承`Serializable`接口,以支持序列化。 6. **持久化(Persistence)**:通过`Session.save()`, `Session.update()`和`Session.delete()`方法,可以实现对象的持久化操作。`Session.load()`则用于根据...

    Activity之间传递List数据

    当需要在不同的Activity之间传递数据时,通常会用到Intent对象。然而,标准的Intent API并不直接支持传递大型数据集合,如List。本文将详细讨论如何在Android中实现Activity之间传递List数据。 首先,理解Intent的...

    07-Java序列化面试题(10题)-新增.pdf

    序列化子父类说明,要想将父类对象也序列化,就需要让父类也实现 Serializable 接口。 9. Transient 关键字阻止该变量被序列化到文件中 在变量声明前加上 Transient 关键字,可以阻止该变量被序列化到文件中,在被...

    java面试笔试题用到的

    Serializable接口 - 用于标识对象可以被序列化。 #### 15. MVC框架中的Struts工作流程 - 用户请求->控制器分发->视图显示->模型处理。 #### 16. 软件开发生命周期 - 包括需求分析、设计、编码、测试和维护等...

    目前市面上最全的可以再工作中用到的100个Demo(上)

    3. **Bundle传值Demo**: `Bundle`在Android中用于在Activity之间传递数据,它可以保存键值对,支持基本类型以及Parcelable和Serializable对象。这个Demo将展示如何正确地在Intent的额外数据中使用Bundle进行数据传递...

    通过socket和serializeable实现对象的网络传输

    这就需要用到Java的序列化机制。`Serializable`是Java中的一个标记接口,当我们让一个类实现这个接口时,表明该类的对象可以被序列化。Java的序列化机制允许我们将对象的状态转换为字节流,这样就可以通过Socket进行...

    android实现activity直接的传值问题

    在两个Activity之间传递数据,通常会用到Intent的以下方法: 1. **putExtra()**:向Intent中添加额外的数据。例如,如果你想传递一个字符串,可以这样写: ```java Intent intent = new Intent(CurrentActivity....

    最新Java面试宝典pdf版

    18、一个用户表中有一个积分字段,假如数据库中有100多万个用户,若要在每年第一天凌晨将积分清零,你将考虑什么,你将想什么办法解决? 107 19、一个用户具有多个角色,请查询出该表中具有该用户的所有角色的其他...

Global site tag (gtag.js) - Google Analytics