A diferència de C++, que combina la sintaxi per a programació estructurada, genèrica i orientada a objectes, Java va ser construïda gairebé exclusivament com un llenguatge orientat a objectes. Tot el codi està escrit dins de classes, i cada element de dades és un objecte, amb l'excepció dels tipus de dades primitius, (és a dir, enters, números de punt flotant, valors booleans i caràcters), que no són objectes per raons de rendiment. Java reutilitza alguns aspectes populars de C++ (com el mètode printf).
C++