Die Typen die ein Entwickler in Java vewendet sind entweder primitive Datentypen oder komplexe Datentypen. Die beiden Kategorien unterscheiden sich in den folgenden Eigenschaften:
| Primitiver Datentyp | Komplexer Datentyp (Objekt) | |
|---|---|---|
| Operatoren | viele hochoptimierte Operationen | Nur Operatoren für Objekte (Vergleich, Referenzierung). Ansonsten Methoden der Klasse |
| Lebensdauer | hängt vom umgebenden Block, bzw. Objekt ab | liegt im Freispeicher. Lebensdauer hängt von der letzten Referenz auf Objekt ab |
| Speicherverbrauch | konstant | meistens variabel |
| Syntax | immer klein geschrieben | Systemklassenbeginnen immer mit Großbuchstaben |
Im nachfolgenden Diagramm wird die Klassifikation der wichtigsten Typen gezeigt:

Die nächsten beiden Abschnitte behandeln die hier gezeigten Typen. Der dritte Abschnitt beschäftigt sich mit den Risiken von Zuweisungen zwischen Datentypen mit unterschiedlichen Wertebereichen.
