`
wangking717
  • 浏览: 262517 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

JAVA有时候也需要序列化

阅读更多
wangking717 写道
序列化就是将一个对象的状态保存起来,然后在适当的时候反序列化后再获得。
对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB、WebService都有应用。
对象序列化问题在网络编程中并不是最激动人心的课题,但却相当重要,具有许多实用意义。

 

这里列举一下常见问题:

1.httpServlet为什么实现了序列化(Serializable)?

答:Servlet是需要存储的。如果容器出现意外的时候会将Servlet存储便于下次restart的时候恢复,所以Servlet要序列化, 实现serializable。

 

2.实现了序列化的接口(Serializable),会提示提供serialVersionUID,用意为何?一定要添加吗?

答:serialVersionUID 序列化时版本控制,确保类版本的兼容性。

在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。

 

JAVA不强制一定添加serialVersionUID,JVM可以帮你生成相应的序列号。但是强烈如果用到了序列化的时候,一定添加序列号,避免不必要的麻烦。因为不同的JVM生成序列号的机制不同再者如果你的类改变了,重新编译的时候,序列号会变化的。

 

找了一些比较简单的例子参考:

 

1.对象序列化  ->发送->  HttpServlet

http://yiditushe.iteye.com/blog/260448

 

2.对象序列化  ->保存文件->  反序列化

http://www.iteye.com/topic/121311

 

分享到:
评论

相关推荐

    Java序列化

    Java序列化是Java平台中的一种标准机制,允许将对象的状态转换为字节流,以便存储在磁盘上、通过网络进行传输或者在某些时候恢复原来的对象状态。这一过程包括两个主要步骤:对象的序列化(将对象转换为字节流)和反...

    java 序列化时排除指定属性

    Java序列化是强大而灵活的工具,但也需要注意隐私和性能问题。通过使用`transient`关键字、自定义序列化方法或第三方库,我们可以排除对象中不希望被序列化的属性。理解这些机制对于编写安全且高效的Java应用程序至...

    Java反序列化安全漏洞防控

    由于Java在反序列化对象时并没有对对象的类型进行严格的检查和限制,这使得攻击者有机会通过精心设计的输入数据,控制反序列化过程中创建的对象类型,从而引发未授权的代码执行。 这样的漏洞往往被用于攻击常见的...

    java序列化与反序列化

    有时候需要自定义序列化和反序列化行为,可以重写`writeObject()`和`readObject()`方法: ```java private void writeObject(ObjectOutputStream out) throws IOException { out.defaultWriteObject(); // 写入...

    java 中序列化NotSerializableException问题解决办法

    在 Java 中,如果一个类的某个字段不需要被序列化,我们就需要将其标记为 transient 类型。那么,什么时候需要标记 transient 呢? 1. 该字段为 Object,而且该 Object 不能修改,且不可序列化。 2. 该字段为可序列...

    Java反序列化回显解决方案.docx

    ### Java反序列化回显解决方案 #### 前言 在信息安全领域,特别是渗透测试与安全研究中,Java反序列化漏洞是一个常见的攻击点。利用此类漏洞,攻击者可以执行远程代码(RCE),对系统造成严重影响。然而,通常情况...

    java中对象的序列化

    Java中的对象序列化是一种将Java对象转换为字节流的过程,以便可以持久存储或在网络上传输...虽然大部分时候无需编写自定义代码,但在某些复杂情况,可能需要定制序列化和反序列化逻辑以确保正确处理特定对象的序列化。

    msgpack工具库二进制格式序列化反序列化

    总的来说,msgpack工具库为Java开发者提供了一种高效、灵活的二进制序列化解决方案,有助于优化数据处理和传输的效率。结合其丰富的功能和强大的社区支持,MsgPack是构建高性能应用的有力工具。

    Java对象序列化

    序列化的核心在于能够将对象的状态信息准确地保存下来,并且在需要的时候能够精确地恢复对象。 #### 二、序列化的重要性与应用场景 1. **持久化**:将对象的状态保存到硬盘上,以备后续使用。 2. **远程通信**:在...

    反序列化作用

    序列化主要的目的是为了保存对象状态,便于对象在需要的时候可以重建,比如存储到文件中或通过网络传输。反序列化则是序列化的逆过程,用来恢复对象状态。 序列化通常在以下几种情况下被需要: 1. 当你想把内存中...

    什么是java序列化,如何实现java序列化?学习.pdf

    1. 如果某个类能够被序列化,其子类也可以被序列化。如果该类有父类,则分两种情况来考虑,如果该父类已经实现了可串行化接口,则其父类的相应字段及属性的处理和该类相同;如果该类的父类没有实现可串行化接口,则...

    Java序列化技术的探讨.pdf

    Java序列化技术是Java中的重要技术,在RMI、AJAX、Web Service等方面都有应用。本文将介绍几种常用的Java序列化技术,并通过比较、分析这些技术在功能、序列化后的字节数和序列化、反序列化速度方面的差异,得出了在...

    详解Java 序列化与反序列化(Serialization)

    序列化和反序列化的应用场景非常广泛,例如在分布式系统中,需要将对象的状态信息从一台机器传输到另一台机器上,这时候需要将对象的状态信息序列化到字节流中,然后通过网络传输到另一台机器上。在数据库中,也可以...

    什么是java序列化,如何实现java序列化?.pdf

    Java 序列化机制 Java 序列化是将一个对象的状态写入一个 Byte 流里,并且可以从其它地方把该 Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到...

    什么是java序列化,如何实现java序列化?借鉴.pdf

    1. 如果某个类能够被序列化,其子类也可以被序列化。如果该类有父类,则分两种情况来考虑,如果该父类已经实现了可串行化接口,则其父类的相应字段及属性的处理和该类相同;如果该类的父类没有实现可串行化接口,则...

    Java序列化常见的三个问题

    要实现Java序列化与反序列化,首先需要把准备要序列化的类实现Serializable接口,然后使用ObjectOutputStream将对象序列化为字节流,最后可以使用ObjectInputStream将字节流反序列化为Java对象。 Java序列化的优点...

    两个Activity在调用StartActivity的时候传递序列化信息

    当需要在两个Activity之间传递数据时,通常有多种方法,其中一种是通过Intent传递序列化对象。这里的"两个Activity在调用StartActivity的时候传递序列化信息"就是指在启动一个新Activity时,将数据以序列化对象的...

    二进制序列化

    在Java中,也有类似的机制,如`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`,用于实现对象的二进制序列化和反序列化。Python的pickle模块也提供了类似的功能。 然而,需要注意的是,二进制序列化...

    第37天:WEB漏洞-反序列化之PHP&JAVA全解(上)1

    然而,如果用户输入的序列化字符串未经检测,就有可能会触发魔术方法,从而导致代码执行、SQL 注入、目录遍历等不可控后果。 魔术方法是 PHP 中的一种特殊方法,它们会在特定的时刻被调用,如对象的创建、销毁、...

    解决Spring Boot和Feign中使用Java 8时间日期API(LocalDate等)的序列化问题

    但是,在使用Spring Boot或Spring Cloud Feign的时候,我们可能会遇到使用请求参数或返回结果中有LocalDate、LocalTime、LocalDateTime类型的数据时发生序列化问题。 问题现象 对于上面的代码,我们可以看到,当...

Global site tag (gtag.js) - Google Analytics