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