`
ncepu_tj
  • 浏览: 8123 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

java对象序列化格式

    博客分类:
  • java
 
阅读更多

stream:

     magic version contents

magic:

     STREAM_MAGIC

version:

     STREAM_VERSION

contents:

      content
      contents content

content:

     object
     blockdata

object:

     newObject
     newClass
     newArray
     newString
     newClassDesc
     prevObject
     nullReference
     exception
     reset

newClass:

     TC_CLASS classDesc newHandle

classDesc:

     newClassDesc
     nullReference
     (ClassDesc)prevObject // an object required to be of type ClassDesc

newClassDesc:

     TC_CLASSDESC className serialVersionUID newHandle classDescInfo

     TC_PROXYCLASSDESC newHandle proxyClassDescInfo

className:

     (utf)

serialVersionUID:

    (long)

newHandle: //The next number in sequence is assigned to the object being serialized or deserialized

classDescInfo:

      classDescFlags fields classAnnotation superClassDesc

proxyClassDescInfo:
     (int)<count>proxyInterfaceName[count] classAnnotation
     superClassDesc

proxyInterfaceName:
     (utf)

classDescFlags:

     (byte) // Defined in Terminal Symbols and Constants

fields:

     (short)<count> fieldDesc[count]

fieldDesc:

     primitiveDesc
     objectDesc

primitiveDesc:

     prim_typecode fieldName

objectDesc:

     obj_typecode fieldName className1

fieldName:

     (utf)

className1:

     (String)object // String containing the field’s type

superClassDesc:

     classDesc

classAnnotation:

     endBlockData
     contents endBlockData // contents written by annotateClass

prim_typecode:

     `B' // byte
     `C' // char
     `D' // double
     `F' // float
     `I' // int
     `J' // long
     `S' // short
     `Z' // boolean

obj_typecode:

     `[` // array
     `L' // object

newArray:

     TC_ARRAY classDesc newHandle (int)<size> values[size]

values: //The size and types are described by the classDesc for the current object

newObject:

     TC_OBJECT classDesc newHandle classdata[] // data for each class

classdata:

     nowrclass // SC_SERIALIZABLE & classDescFlag && !(SC_WRITE_METHOD & classDescFlags)
     wrclass objectAnnotation // SC_SERIALIZABLE & classDescFlag && SC_WRITE_METHOD &
classDescFlags
     externalContents // SC_EXTERNALIZABLE & classDescFlag && !(SC_BLOCKDATA &
classDescFlags
     objectAnnotation // SC_EXTERNALIZABLE & classDescFlag&& SC_BLOCKDATA & classDescFlags

nowrclass:

     values // fields in order of class descriptor

wrclass:

     nowrclass

objectAnnotation:

     endBlockData
     contents endBlockData // contents written by writeObject or writeExternal PROTOCOL_VERSION_2

externalContents: // externalContent written by

     externalContent // writeExternal in PROTOCOL_VERSION_1
     externalContents externalContent

externalContent: // Only parseable by readExternal

     (bytes)object

blockdata:

    blockdatashort
    blockdatalong

blockdatashort:

     TC_BLOCKDATA (unsigned byte)<size> (byte)[size]

blockdatalong:

     TC_BLOCKDATALONG (int)<size> (byte)[size]

endBlockData:

     TC_ENDBLOCKDATA

newString:

     TC_STRING newHandle (utf)

prevObject:

     TC_REFERENCE (int)handle

nullReference:

     TC_NULL

exception:

     TC_EXCEPTION reset(Throwable) object reset

reset: // The set of known objects is discarded so the objects of the exception do not overlap with the previously sent objects or with objects that may be sent after the exception

分享到:
评论

相关推荐

    Java对象序列化和反序列化工具Xson.zip

    Xson是一个Java对象序列化和反序列化程序。支持Java对象到字节数组的序列化,和从字节数组到Java对象的反序列化。 Maven:  &lt;groupId&gt;com.github.xsonorg&lt;/groupId&gt;  &lt;artifactId&gt;xson-core  &lt;version&gt;1.0.1 ...

    Java对象序列化标准最新版

    ### Java对象序列化标准知识点详解 #### 一、系统架构概览 **1.1 概览** Java 对象序列化是一种将Java对象的状态转换成字节流的过程,以便于在网络上传输或存储到磁盘上。Java序列化标准定义了一套规则来描述如何...

    关于 Java 对象序列化您不知道的 5 件事

    Java对象序列化是Java平台的一项重要特性,它允许将对象的状态转换为字节流,以便存储、传输或恢复。在本文中,我们将深入探讨关于Java对象序列化你可能不知道的五件事情,这些知识点对于理解和优化你的Java应用程序...

    java对象序列化和反序列化

    Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...

    java 对象序列化

    Java对象序列化是一种将Java对象转换为字节流的过程,以便可以存储在磁盘上、在网络上传输或在任何其他需要持久化数据的场景中使用。这个过程涉及到两个主要概念:序列化(Marshalling)和反序列化(Unmarshalling)...

    java 对象的序列化与反序列化

    Java对象的序列化和反序列化是Java编程中一项重要的技术,主要用于将对象的状态转换为字节流,以便存储或在网络上传输。这一过程对于理解Java的IO操作、持久化数据以及实现分布式通信等场景非常关键。 首先,我们来...

    JAVA对象序列化保存为XML文件的工具类

    【JAVA对象序列化保存为XML文件的工具类】 在Java编程中,对象序列化是一种将对象的状态转换为字节流的过程,以便可以存储或在网络上传输。而在反序列化时,这个字节流又可以恢复为原来的对象。Java提供了一个方便...

    java对象序列化.ppt

    Java对象序列化是一种将对象转换为字节流的过程,以便可以将其存储在磁盘上,或者在网络中进行传输。这是Java平台提供的一种功能,允许程序员将任何Java对象持久化,即将其状态保存到磁盘,或者在网络中进行传输。...

    java序列化对象传给php

    android(包括java)序列化一个对象传给php去做处理,或是接到php...//将一个对象序列化后返回byte[] String phpserialstr=new String(b); 将变量phpserialstr传给php即可. PHPSerializer中还有unserialize方法,是反序列化

    Java对象序列化的秘密

    Java对象序列化是Java平台提供的一种机制,允许将对象的状态转换为字节流,以便存储在磁盘上、通过网络传输或在不同时间点恢复。这个过程涉及到将一个复杂的Java对象模型转换为简单的二进制表示,使得数据可以在不同...

    介绍Java对象序列化使用基础

    序列化的过程就是对象写入字节流和从字节流中读取对象。...对象序列化功能非常简单、强大,在RMI、Socket、JMS、EJB都有应用。对象序列化问题在网络编程中并不是最激动人心的课题,但却相当重要,具有许多实用意义。

    java对象序列化 传输 保存

    Java对象序列化是一种将Java对象转换为字节流的过程,以便可以存储这些对象或通过网络进行传输。这个过程是Java平台的核心特性,它允许开发者将复杂的对象结构持久化或者在网络间进行安全通信。序列化不仅可以用于...

    java反序列化工具

    Java反序列化是一种将已序列化的对象状态转换回对象的过程,它是Java平台中持久化数据的一种常见方式。在Java应用程序中,序列化用于保存对象的状态以便稍后恢复,或者在网络间传输对象。然而,这个过程也可能引入...

    java 序列化成PHP格式。

    将java数据 序列化成PHP的格式 a:4:{s:6:"title2";s:13:"这是标题2";s:6:"title3";s:13:"这是标题3";s:5:"title";s:13:"这是标题1";s:6:"title4";s:13:"这是标题4";} 或者a:1:{i:0;a:1:{s:4:"name";s:10:"这是1321";...

    java序列化和反序列化的方法

    java 序列化和反序列化的方法 Java 序列化和反序列化是 Java 语言中的一种机制,用于将对象转换为字节流,以便在网络上传输或存储。序列化是将对象转换为字节流的过程,而反序列化是将字节流转换回对象的过程。 在...

    Java对象序列化

    ### Java对象序列化详解 #### 一、Java对象序列化概念 Java对象序列化是指将...理解序列化文件的格式以及序列化过程中的关键步骤,有助于开发者更好地掌握Java对象序列化的细节,并能够在实践中有效地应用这些知识。

    java反序列化利用程序UI版Beta1.1.rar

    1. **Java序列化机制**:Java对象序列化是通过实现`Serializable`接口来标记一个类可被序列化。`ObjectOutputStream`用于将对象写入流,`ObjectInputStream`用于从流中读取并反序列化对象。 2. **易受攻击的库**:...

    C#和Java的序列化反序列化

    例如,Jackson库的`ObjectMapper`类能够方便地将Java对象转换为JSON字符串,反之亦然。 在跨平台通信中,C#的WCF(Windows Communication Foundation)服务和Java的JAX-WS、JAX-RS服务都使用了序列化和反序列化技术...

Global site tag (gtag.js) - Google Analytics