# Specialized Type Handlers

{% hint style="warning" %}
**This is the manual for older MicroStream versions (Version < 5.0).**

**The new documentation (Version >= 5.0) is located at:**

[https://docs.microstream.one/](https://docs.microstream.one/manual)
{% endhint %}

Although most types in the JDK or any other Java library will work with MicroStream, there is a bunch of specialized type handlers for the most commonly used types. They are optimized to reduce memory overhead and increase performance.

The following list describes all types for which special type handlers are implemented. All other types are analyzed generically.

### Value Types

|                 |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Primitive Types | All [primitive types](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html) and [arrays](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html) thereof                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| java.lang       | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Byte.html">Byte</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Boolean.html">Boolean</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Short.html">Short</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Character.html">Character</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html">Integer</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html">Float</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Long.html">Long</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html">Double</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html">Void</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html">Object</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html">String</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuffer.html">StringBuffer</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html">StringBuilder</a></p> |
| java.math       | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigDecimal.html">BigDecimal</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html">BigInteger</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| java.util       | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Date.html">Date</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Currency.html">Currency</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html">Locale</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalInt.html">OptionalInt</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalLong.html">OptionalLong</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/OptionalDouble.html">OptionalDouble</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| java.util.regex | [Pattern](https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| java.io         | [File](https://docs.oracle.com/javase/8/docs/api/java/io/File.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| java.nio.file   | [Path](https://docs.oracle.com/javase/8/docs/api/java/nio/file/Path.html)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| java.net        | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetAddress.html">InetAddress</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/Inet4Address.html">Inet4Address</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/Inet6Address.html">Inet6Address</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/InetSocketAddress.html">InetSocketAddress</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URI.html">URI</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/net/URL.html">URL</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| java.sql        | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Date.html">Date</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Time.html">Time</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/sql/Timestamp.html">Timestamp</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

### Collections

|                      |                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| java.util            | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Vector.html">Vector</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Stack.html">Stack</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Hashtable.html">Hashtable</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html">Properties</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html">ArrayList</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashSet.html">HashSet</a>*<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html">HashMap</a>*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashSet.html">LinkedHashSet</a>*<br><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedHashMap.html">LinkedHashMap</a>\*</p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/WeakHashMap.html">WeakHashMap</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/LinkedList.html">LinkedList</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeMap.html">TreeMap</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html">TreeSet</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/IdentityHashMap.html">IdentityHashMap</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/PriorityQueue.html">PriorityQueue</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/ArrayDeque.html">ArrayDeque</a></p> |
| java.util.concurrent | <p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentHashMap.html">ConcurrentHashMap</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListMap.html">ConcurrentSkipListMap</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentSkipListSet.html">ConcurrentSkipListSet</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedQueue.html">ConcurrentLinkedQueue</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ConcurrentLinkedDeque.html">ConcurrentLinkedDeque</a></p><p><a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CopyOnWriteArrayList.html">CopyOnWriteArrayList</a></p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |

\*) Most collections above are handled in a generic way. If you want a more optimized version of JDK collection handlers, you can utilize the provided module `persistence.binary.jdk8`.

{% code title="pom.xml" %}

```markup
<repositories>
    <repository>
        <id>microstream-releases</id>
        <url>https://repo.microstream.one/repository/maven-public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>one.microstream</groupId>
        <artifactId>persistence.binary.jdk8</artifactId>
        <version>04.00.00-MS-GA</version>
    </dependency>
</dependencies>
```

{% endcode %}

```java
final EmbeddedStorageFoundation<?> foundation = EmbeddedStorage.Foundation();
foundation.onConnectionFoundation(BinaryHandlersJDK8::registerJDK8TypeHandlers);
```
