Man kann Java kurz als objektorientierte, architekturunabhängige, verteilte und mulithreaded Programmiersprache beschreiben. Jede programmierte Klasse wird durch den Java-Compiler in eine .class-Datei umgewandelt. Die .class-Datei enthält in codierter Form den Bytecode (Assembler für die JVM). Darüberhinaus verfügt Java über einen Garbage-Collector, der zur Laufzeit feststellt auf welche Objekte keine Referenz mehr zeigt und diese dann löscht.