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行动,并且为所有使用到的对象流的类制定了参数的类型和数值,方便对比和订正