ObjectStreamConstants (Java SE 11 & JDK 11 )
Keywords: java.io.ObjectStreamConstants interface

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 process-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 Detail

    - #### 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 process-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