Module java.base
Package java.io

# Interface ObjectStreamConstants

All Known Implementing Classes:
  `ObjectInputStream`, `ObjectOutputStream`

public interface ObjectStreamConstants
Constants written into the Object Serialization Stream.

Since:
  1.1

## Field Summary

Fields
Modifier and Type
Field
Description
`static int`
`baseWireHandle`
First wire handle to be assigned.
`static int`
`PROTOCOL_VERSION_1`
A Stream Protocol Version.
`static int`
`PROTOCOL_VERSION_2`
A Stream Protocol Version.
`static byte`
`SC_BLOCK_DATA`
Bit mask for ObjectStreamClass flag.
`static byte`
`SC_ENUM`
Bit mask for ObjectStreamClass flag.
`static byte`
`SC_EXTERNALIZABLE`
Bit mask for ObjectStreamClass flag.
`static byte`
`SC_SERIALIZABLE`
Bit mask for ObjectStreamClass flag.
`static byte`
`SC_WRITE_METHOD`
Bit mask for ObjectStreamClass flag.
`static SerializablePermission`
`SERIAL_FILTER_PERMISSION`
Enable setting the system-wide serial filter.
`static short`
`STREAM_MAGIC`
Magic number that is written to the stream header.
`static short`
`STREAM_VERSION`
Version number that is written to the stream header.
`static SerializablePermission`
`SUBCLASS_IMPLEMENTATION_PERMISSION`
Enable overriding of readObject and writeObject.
`static SerializablePermission`
`SUBSTITUTION_PERMISSION`
Enable substitution of one object for another during serialization/deserialization.
`static byte`
`TC_ARRAY`
new Array.
`static byte`
`TC_BASE`
First tag value.
`static byte`
`TC_BLOCKDATA`
Block of optional data.
`static byte`
`TC_BLOCKDATALONG`
long Block data.
`static byte`
`TC_CLASS`
Reference to Class.
`static byte`
`TC_CLASSDESC`
new Class Descriptor.
`static byte`
`TC_ENDBLOCKDATA`
End of optional block data blocks for an object.
`static byte`
`TC_ENUM`
new Enum constant.
`static byte`
`TC_EXCEPTION`
Exception during write.
`static byte`
`TC_LONGSTRING`
Long string.
`static byte`
`TC_MAX`
Last tag value.
`static byte`
`TC_NULL`
Null object reference.
`static byte`
`TC_OBJECT`
new Object.
`static byte`
`TC_PROXYCLASSDESC`
new Proxy Class Descriptor.
`static byte`
`TC_REFERENCE`
Reference to an object already written into the stream.
`static byte`
`TC_RESET`
Reset stream context.
`static byte`
`TC_STRING`
new String.

## Field Details

### STREAM_MAGIC

static final short STREAM_MAGIC
Magic number that is written to the stream header.

See Also:
  Constant Field Values

### STREAM_VERSION

static final short STREAM_VERSION
Version number that is written to the stream header.

See Also:
  Constant Field Values

### TC_BASE

static final byte TC_BASE
First tag value.

See Also:
  Constant Field Values

### TC_NULL

static final byte TC_NULL
Null object reference.

See Also:
  Constant Field Values

### TC_REFERENCE

static final byte TC_REFERENCE
Reference to an object already written into the stream.

See Also:
  Constant Field Values

### TC_CLASSDESC

static final byte TC_CLASSDESC
new Class Descriptor.

See Also:
  Constant Field Values

### TC_OBJECT

static final byte TC_OBJECT
new Object.

See Also:
  Constant Field Values

### TC_STRING

static final byte TC_STRING
new String.

See Also:
  Constant Field Values

### TC_ARRAY

static final byte TC_ARRAY
new Array.

See Also:
  Constant Field Values

### TC_CLASS

static final byte TC_CLASS
Reference to Class.

See Also:
  Constant Field Values

### TC_BLOCKDATA

static final byte TC_BLOCKDATA
Block of optional data. Byte following tag indicates number of bytes in this block data.

See Also:
  Constant Field Values

### TC_ENDBLOCKDATA

static final byte TC_ENDBLOCKDATA
End of optional block data blocks for an object.

See Also:
  Constant Field Values

### TC_RESET

static final byte TC_RESET
Reset stream context. All handles written into stream are reset.

See Also:
  Constant Field Values

### TC_BLOCKDATALONG

static final byte TC_BLOCKDATALONG
long Block data. The long following the tag indicates the number of bytes in this block data.

See Also:
  Constant Field Values

### TC_EXCEPTION

static final byte TC_EXCEPTION
Exception during write.

See Also:
  Constant Field Values

### TC_LONGSTRING

static final byte TC_LONGSTRING
Long string.

See Also:
  Constant Field Values

### TC_PROXYCLASSDESC

static final byte TC_PROXYCLASSDESC
new Proxy Class Descriptor.

See Also:
  Constant Field Values

### TC_ENUM

static final byte TC_ENUM
new Enum constant.

Since:
  1.5
See Also:
  Constant Field Values

### TC_MAX

static final byte TC_MAX
Last tag value.

See Also:
  Constant Field Values

### baseWireHandle

static final int baseWireHandle
First wire handle to be assigned.

See Also:
  Constant Field Values

### SC_WRITE_METHOD

static final byte SC_WRITE_METHOD
Bit mask for ObjectStreamClass flag. Indicates a Serializable class defines its own writeObject method.

See Also:
  Constant Field Values

### SC_BLOCK_DATA

static final byte SC_BLOCK_DATA
Bit mask for ObjectStreamClass flag. Indicates Externalizable data written in Block Data mode. Added for PROTOCOL_VERSION_2.

Since:
  1.2
See Also:
  `PROTOCOL_VERSION_2`, Constant Field Values

### SC_SERIALIZABLE

static final byte SC_SERIALIZABLE
Bit mask for ObjectStreamClass flag. Indicates class is Serializable.

See Also:
  Constant Field Values

### SC_EXTERNALIZABLE

static final byte SC_EXTERNALIZABLE
Bit mask for ObjectStreamClass flag. Indicates class is Externalizable.

See Also:
  Constant Field Values

### SC_ENUM

static final byte SC_ENUM
Bit mask for ObjectStreamClass flag. Indicates class is an enum type.

Since:
  1.5
See Also:
  Constant Field Values

### SUBSTITUTION_PERMISSION

static final SerializablePermission SUBSTITUTION_PERMISSION
Enable substitution of one object for another during serialization/deserialization.

Since:
  1.2
See Also:
  `ObjectOutputStream.enableReplaceObject(boolean)`, `ObjectInputStream.enableResolveObject(boolean)`

### SUBCLASS_IMPLEMENTATION_PERMISSION

static final SerializablePermission SUBCLASS_IMPLEMENTATION_PERMISSION
Enable overriding of readObject and writeObject.

Since:
  1.2
See Also:
  `ObjectOutputStream.writeObjectOverride(Object)`, `ObjectInputStream.readObjectOverride()`

### SERIAL_FILTER_PERMISSION

static final SerializablePermission SERIAL_FILTER_PERMISSION
Enable setting the system-wide serial filter.

Since:
  9
See Also:
  `ObjectInputFilter.Config.setSerialFilter(ObjectInputFilter)`

### PROTOCOL_VERSION_1

static final int PROTOCOL_VERSION_1
A Stream Protocol Version.

All externalizable data is written in JDK 1.1 external data format after calling this method. This version is needed to write streams containing Externalizable data that can be read by pre-JDK 1.1.6 JVMs.

Since:
  1.2
See Also:
  `ObjectOutputStream.useProtocolVersion(int)`, Constant Field Values

### PROTOCOL_VERSION_2

static final int PROTOCOL_VERSION_2
A Stream Protocol Version.

This protocol is written by JVM 1.2. Externalizable data is written in block data mode and is terminated with TC_ENDBLOCKDATA. Externalizable class descriptor flags has SC_BLOCK_DATA enabled. JVM 1.1.6 and greater can read this format change. Enables writing a nonSerializable class descriptor into the stream. The serialVersionUID of a nonSerializable class is set to 0L.

Since:
  1.2
See Also:
  `ObjectOutputStream.useProtocolVersion(int)`, `SC_BLOCK_DATA`, Constant Field Values