krokodile: java a c++ mají hodně podobnou základní syntaxi, c++ může být podobně pseudoobjektové jako java, ale jinak to je nebe a dudy, jak říkáš - jde o jazyky s diametrálně jinou filozofií. Mluvíme-li tu o faktoru rychlosti hotového programu, stručně asi takhle:
Programy v c++ jsou kompilované, zatímco v javě interpretované. Z toho plyne, že jeden a tentýž program javy lze použít kdekoliv, kde je javové prostředí - od od procesoru, přes operační systém až samotný hardware (klasikou nepřitaženou za vlasy je jeden program, který funduje na windows, unixu, macos, mobilu, palmu i xyztého pda).
Takže obé má své nevýhody a výhody - programy c++ se musí v lepším případě rekompilovat (v horším přepisovat, v ještě horším zcela nově navrhnout, v nejhorším zbastlit s koncým prostředím, hw a vším dohromady, aby si to vzájemně rozumělo) pro každý OS/HW, ale z toho plyne i větší rychlost - vše již "připravené" pro tu koncovou konfiguraci zařízení je připravené předem.
Zatímco programy javy jsou přenositelné, ale nejsou tedy "připravené" pro koncové zařízení - protože se předem a priori "neví", na čem se to bude spouštět. To znamená, že při vykonávání programu je potřebná nějaká práce navíc - tzv. virtuální stroj (VM) zdrojový kód interpretuje. To znamená, že zdrojový kód programu v javě je kódem pro virtuální počítač a je teprve přechroustán na kód cílového zařízení. Nicméně nutno říct, že takhle primitivně už to dnes není - nové VM provádějí optimalizace na úrovni kódu i překladu (JIT - určité pasáže jsou přeloženy do instrukcí koncového zařízení a neinterpretují se pořád dokola...), máme tu sporné JNI (Java Native Interface), které dovoluje kombinovat Javu s C (což je sice rychlejší, ale ne tak, jak by se zdálo; ale hlavně to odstřeluje x dalších předností javy, takže je to spíš krok vzad i přes tu rychlost).
Na zpomalení javovského programu mají pak vliv i další vychytávky (správa paměti, implementace multithreadingu, bezpečnost, atd. atd.), ale to už by bylo na obšírnější povídání.
Ale abych se začal nořit zase trochu výš - mluvíme-li tady čistě a pouze v kontextu rychlosti programu, ta je sama o sobě je dost relativní a záleží na konkrétním programu. Nevím, zda je dnes v něčem C++ 40x pomalejší, java se dost zrychlila, ale v něčem jistě bude C++ mít velký (a zřejmě nedosažitelný) náskok. V některé aplikaci je C++ rychlejší, jinde je to nastejno a onehde zase vede Java.
A teď ještě víš... Java v bledě modrém (navenek) je C# a ne C++. C# je jazyk, který si bere Javovskou ideu virtuálního stroje a interpretovaného kódu. Syntaxe je s Javou velmi, velmi podobná - ještě víc než mezi Javou a C++... A prostě je to na první pohled vůbec taková "druhá" Java... Jenže, jak píšu v předchozím příspěvku, druhá Java to není - nejen z toho, čím to jazyk je, ale jakou má šíři záběru, zavedenost v oblasti a ve věcech kolem...
EDIT: ad drake... no, a C++ zase nikdy nebude jako assembler

To je prostě o tom, jak říkáš, co člověk chce a hledá. Vytrikovaný assembler může být bleskově rychlý, ale dělat v něm něco na desktop jako třeba v C++, bude peklo, pakliže člověk bude schopen to vůbec dodělat. A podobně větší desktopové a hlavně a zejména enterprise věci zase překračují hranice zvládnutelnosti v C++...