Java 日看一类(38)之IO包中的ObjectStreamConstant类

本文介绍了ObjectStreamConstants类,它是Java序列化过程中使用的常量集合。文章详细解释了各种序列化操作对应的字节码标记,例如对象引用、字符串、类描述等,并提供了关键的序列化流程标识符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ObjectStreamConstants为接口类

无继承和引入关系


该类的类头注释如下:

/**
 * Constants written into the Object Serialization Stream.
 *
 * @author  unascribed
 * @since JDK 1.1
 */

大意如下:

写入对象序列化流中的常量数值



该类含有如下的成员变量:

流头的标识符

final static short STREAM_MAGIC = (short)0xaced;

输出流的版本符

final static short STREAM_VERSION = 5;

第一个标志的值

final static byte TC_BASE = 0x70;

无对象引用

final static byte TC_NULL =         (byte)0x70;

被引用的对象已经被写入到流中

final static byte TC_REFERENCE =    (byte)0x71;

新类的描述符

final static byte TC_CLASSDESC =    (byte)0x72;

新对象

final static byte TC_OBJECT =       (byte)0x73;

新字符串

final static byte TC_STRING =       (byte)0x74;

新数组

final static byte TC_ARRAY =        (byte)0x75;

类引用

final static byte TC_CLASS =        (byte)0x76;

可选数据块。字节跟随标记表示此数据块中的字节数。

final static byte TC_BLOCKDATA =    (byte)0x77;
对象末尾的可选数据块
final static byte TC_ENDBLOCKDATA = (byte)0x78;

大块数据标识符

final static byte TC_BLOCKDATALONG= (byte)0x7A;

重置流上下文和句柄

final static byte TC_RESET =        (byte)0x79;

写出时的异常

final static byte TC_EXCEPTION =    (byte)0x7B;

长字符串

final static byte TC_LONGSTRING =   (byte)0x7C;

新代理类描述符

final static byte TC_PROXYCLASSDESC =       (byte)0x7D;

新的枚举类型

final static byte TC_ENUM =         (byte)0x7E;

上个标示的值

final static byte TC_MAX =          (byte)0x7E;

第一个被标记的句柄

final static int baseWireHandle = 0x7e0000;

ObjectStreamClass标志位,表示该序列化类覆写了writeObject

final static byte SC_WRITE_METHOD = 0x01;

ObjectStreamClass标志位,表示该序列化数据写入到块数据模组中

final static byte SC_BLOCK_DATA = 0x08;

ObjectStreamClass标志位,表示该类可序列化

final static byte SC_SERIALIZABLE = 0x02;

ObjectStreamClass标志位,表示该类可指定序列化

final static byte SC_EXTERNALIZABLE = 0x04;

ObjectStreamClass标志位,表示该类为枚举类型

final static byte SC_ENUM = 0x10;

使一个对象在序列化/反序列化进程中被另一个对象替换

final static SerializablePermission SUBSTITUTION_PERMISSION =
                       new SerializablePermission("enableSubstitution");

流协议版本1

public final static int PROTOCOL_VERSION_1 = 1;

流协议版本2

public final static int PROTOCOL_VERSION_2 = 2;



该类主要用于标识ObjectStreamClass行动,并且为所有使用到的对象流的类制定了参数的类型和数值,方便对比和订正

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值