Java controlla (o meglio "nega") se il programmatore agisce direttamente e "erroneamente" sulla memoria centrale. il c++ no, è un vantaggio in sicurezza.
Java è nato per essere esclusivamente orientato agli oggetti. il c++ no.
Java è lento, ha bisogno delle JVM per girare, ma questo è un vantaggio perchè può girare su tante piattaforme senza modificare il codice. (palmari, linux windows...)
Si chiamava Green ed era stato inventato dalla sun per programmare elettrodomestici "intelligenti" (detto un pò così).
(nessuno arriva a ruby....io ti consiglio di imparare quello....IMHO eh!)

