Dost vystižné :) Ale co se těch rozdílu týče...
Java jak už jsi řekl využivá trochu jinak pamět. Narozdíl od C++ se nepřekládá staticky, ale vždy při spuštění aplikace pomocí konkrétní platformy. Takže když máš jednoduchou aplikaci, která by teoreticky neměla sežrat moc paměti a neměla by být nějak moc náročná tak si to virtualní stroj Javy stejně forcne na nějaké minimum a s tím pracuje. Výhoda Javy je to, že se dá jednodušeji přenášet na jiné platformy. Takže se používá pro programy, které jsou určené na více platforem...