# ObjectStreamConstants

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  
Summary:[Constants](https://developer.android.com/reference/java/io/ObjectStreamConstants#constants)\|[Fields](https://developer.android.com/reference/java/io/ObjectStreamConstants#lfields)  

# ObjectStreamConstants

`
public


interface
ObjectStreamConstants
`  
`


`

|-------------------------------|
| java.io.ObjectStreamConstants |

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known indirect subclasses [ObjectInputStream](https://developer.android.com/reference/java/io/ObjectInputStream),[ObjectOutputStream](https://developer.android.com/reference/java/io/ObjectOutputStream) |------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------| | [ObjectInputStream](https://developer.android.com/reference/java/io/ObjectInputStream)   | An ObjectInputStream deserializes primitive data and objects previously written using an ObjectOutputStream. | | [ObjectOutputStream](https://developer.android.com/reference/java/io/ObjectOutputStream) | An ObjectOutputStream writes primitive data types and graphs of Java objects to an OutputStream.             | |

<br />

*** ** * ** ***

Constants written into the Object Serialization Stream.

## Summary

|                                                                            ### Constants                                                                             ||
|---------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `int`   | [PROTOCOL_VERSION_1](https://developer.android.com/reference/java/io/ObjectStreamConstants#PROTOCOL_VERSION_1) A Stream Protocol Version.                   |
| `int`   | [PROTOCOL_VERSION_2](https://developer.android.com/reference/java/io/ObjectStreamConstants#PROTOCOL_VERSION_2) A Stream Protocol Version.                   |
| `byte`  | [SC_BLOCK_DATA](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_BLOCK_DATA) Bit mask for ObjectStreamClass flag.                   |
| `byte`  | [SC_ENUM](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_ENUM) Bit mask for ObjectStreamClass flag.                               |
| `byte`  | [SC_EXTERNALIZABLE](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_EXTERNALIZABLE) Bit mask for ObjectStreamClass flag.           |
| `byte`  | [SC_SERIALIZABLE](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_SERIALIZABLE) Bit mask for ObjectStreamClass flag.               |
| `byte`  | [SC_WRITE_METHOD](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_WRITE_METHOD) Bit mask for ObjectStreamClass flag.               |
| `short` | [STREAM_MAGIC](https://developer.android.com/reference/java/io/ObjectStreamConstants#STREAM_MAGIC) Magic number that is written to the stream header.       |
| `short` | [STREAM_VERSION](https://developer.android.com/reference/java/io/ObjectStreamConstants#STREAM_VERSION) Version number that is written to the stream header. |
| `byte`  | [TC_ARRAY](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_ARRAY) new Array.                                                       |
| `byte`  | [TC_BASE](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_BASE) First tag value.                                                   |
| `byte`  | [TC_BLOCKDATA](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_BLOCKDATA) Block of optional data.                                  |
| `byte`  | [TC_BLOCKDATALONG](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_BLOCKDATALONG) long Block data.                                 |
| `byte`  | [TC_CLASS](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_CLASS) Reference to Class.                                              |
| `byte`  | [TC_CLASSDESC](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_CLASSDESC) new Class Descriptor.                                    |
| `byte`  | [TC_ENDBLOCKDATA](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_ENDBLOCKDATA) End of optional block data blocks for an object.   |
| `byte`  | [TC_ENUM](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_ENUM) new Enum constant.                                                 |
| `byte`  | [TC_EXCEPTION](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_EXCEPTION) Exception during write.                                  |
| `byte`  | [TC_LONGSTRING](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_LONGSTRING) Long string.                                           |
| `byte`  | [TC_MAX](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_MAX) Last tag value.                                                      |
| `byte`  | [TC_NULL](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_NULL) Null object reference.                                             |
| `byte`  | [TC_OBJECT](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_OBJECT) new Object.                                                    |
| `byte`  | [TC_PROXYCLASSDESC](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_PROXYCLASSDESC) new Proxy Class Descriptor.                    |
| `byte`  | [TC_REFERENCE](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_REFERENCE) Reference to an object already written into the stream.  |
| `byte`  | [TC_RESET](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_RESET) Reset stream context.                                            |
| `byte`  | [TC_STRING](https://developer.android.com/reference/java/io/ObjectStreamConstants#TC_STRING) new String.                                                    |
| `int`   | [baseWireHandle](https://developer.android.com/reference/java/io/ObjectStreamConstants#baseWireHandle) First wire handle to be assigned.                    |

|                                                                                                                                                              ### Fields                                                                                                                                                               ||
|-------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ` public static final `[SerializablePermission](https://developer.android.com/reference/java/io/SerializablePermission) | [SUBCLASS_IMPLEMENTATION_PERMISSION](https://developer.android.com/reference/java/io/ObjectStreamConstants#SUBCLASS_IMPLEMENTATION_PERMISSION) Enable overriding of readObject and writeObject.              |
| ` public static final `[SerializablePermission](https://developer.android.com/reference/java/io/SerializablePermission) | [SUBSTITUTION_PERMISSION](https://developer.android.com/reference/java/io/ObjectStreamConstants#SUBSTITUTION_PERMISSION) Enable substitution of one object for another during serialization/deserialization. |

## Constants

### PROTOCOL_VERSION_1

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public 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.

<br />

**See also:**

- [ObjectOutputStream.useProtocolVersion(int)](https://developer.android.com/reference/java/io/ObjectOutputStream#useProtocolVersion(int))

Constant Value: 1 (0x00000001)  

### PROTOCOL_VERSION_2

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public 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.

<br />

**See also:**

- [ObjectOutputStream.useProtocolVersion(int)](https://developer.android.com/reference/java/io/ObjectOutputStream#useProtocolVersion(int))
- [SC_BLOCK_DATA](https://developer.android.com/reference/java/io/ObjectStreamConstants#SC_BLOCK_DATA)

Constant Value: 2 (0x00000002)  

### SC_BLOCK_DATA

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte SC_BLOCK_DATA
```

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

<br />

**See also:**

- [PROTOCOL_VERSION_2](https://developer.android.com/reference/java/io/ObjectStreamConstants#PROTOCOL_VERSION_2)

Constant Value: 8 (0x00000008)  

### SC_ENUM

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte SC_ENUM
```

Bit mask for ObjectStreamClass flag. Indicates class is an enum type.

<br />

Constant Value: 16 (0x00000010)  

### SC_EXTERNALIZABLE

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte SC_EXTERNALIZABLE
```

Bit mask for ObjectStreamClass flag. Indicates class is Externalizable.

<br />

Constant Value: 4 (0x00000004)  

### SC_SERIALIZABLE

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte SC_SERIALIZABLE
```

Bit mask for ObjectStreamClass flag. Indicates class is Serializable.

<br />

Constant Value: 2 (0x00000002)  

### SC_WRITE_METHOD

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte SC_WRITE_METHOD
```

Bit mask for ObjectStreamClass flag. Indicates a Serializable class defines its own writeObject method.

<br />

Constant Value: 1 (0x00000001)  

### STREAM_MAGIC

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final short STREAM_MAGIC
```

Magic number that is written to the stream header.

<br />

Constant Value: -21267 (0xffffaced)  

### STREAM_VERSION

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final short STREAM_VERSION
```

Version number that is written to the stream header.

<br />

Constant Value: 5 (0x00000005)  

### TC_ARRAY

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_ARRAY
```

new Array.

<br />

Constant Value: 117 (0x00000075)  

### TC_BASE

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_BASE
```

First tag value.

<br />

Constant Value: 112 (0x00000070)  

### TC_BLOCKDATA

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_BLOCKDATA
```

Block of optional data. Byte following tag indicates number of bytes in this block data.

<br />

Constant Value: 119 (0x00000077)  

### TC_BLOCKDATALONG

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_BLOCKDATALONG
```

long Block data. The long following the tag indicates the number of bytes in this block data.

<br />

Constant Value: 122 (0x0000007a)  

### TC_CLASS

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_CLASS
```

Reference to Class.

<br />

Constant Value: 118 (0x00000076)  

### TC_CLASSDESC

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_CLASSDESC
```

new Class Descriptor.

<br />

Constant Value: 114 (0x00000072)  

### TC_ENDBLOCKDATA

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_ENDBLOCKDATA
```

End of optional block data blocks for an object.

<br />

Constant Value: 120 (0x00000078)  

### TC_ENUM

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_ENUM
```

new Enum constant.

<br />

Constant Value: 126 (0x0000007e)  

### TC_EXCEPTION

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_EXCEPTION
```

Exception during write.

<br />

Constant Value: 123 (0x0000007b)  

### TC_LONGSTRING

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_LONGSTRING
```

Long string.

<br />

Constant Value: 124 (0x0000007c)  

### TC_MAX

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_MAX
```

Last tag value.

<br />

Constant Value: 126 (0x0000007e)  

### TC_NULL

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_NULL
```

Null object reference.

<br />

Constant Value: 112 (0x00000070)  

### TC_OBJECT

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_OBJECT
```

new Object.

<br />

Constant Value: 115 (0x00000073)  

### TC_PROXYCLASSDESC

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_PROXYCLASSDESC
```

new Proxy Class Descriptor.

<br />

Constant Value: 125 (0x0000007d)  

### TC_REFERENCE

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_REFERENCE
```

Reference to an object already written into the stream.

<br />

Constant Value: 113 (0x00000071)  

### TC_RESET

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_RESET
```

Reset stream context. All handles written into stream are reset.

<br />

Constant Value: 121 (0x00000079)  

### TC_STRING

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final byte TC_STRING
```

new String.

<br />

Constant Value: 116 (0x00000074)  

### baseWireHandle

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final int baseWireHandle
```

First wire handle to be assigned.

<br />

Constant Value: 8257536 (0x007e0000)

## Fields

### SUBCLASS_IMPLEMENTATION_PERMISSION

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final SerializablePermission SUBCLASS_IMPLEMENTATION_PERMISSION
```

Enable overriding of readObject and writeObject.

<br />

**See also:**

- [ObjectOutputStream.writeObjectOverride(Object)](https://developer.android.com/reference/java/io/ObjectOutputStream#writeObjectOverride(java.lang.Object))
- [ObjectInputStream.readObjectOverride()](https://developer.android.com/reference/java/io/ObjectInputStream#readObjectOverride())  

### SUBSTITUTION_PERMISSION

Added in[API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)  

```
public static final SerializablePermission SUBSTITUTION_PERMISSION
```

Enable substitution of one object for another during serialization/deserialization.

<br />

**See also:**

- [ObjectOutputStream.enableReplaceObject(boolean)](https://developer.android.com/reference/java/io/ObjectOutputStream#enableReplaceObject(boolean))
- [ObjectInputStream.enableResolveObject(boolean)](https://developer.android.com/reference/java/io/ObjectInputStream#enableResolveObject(boolean))