Von Java nach C++

Mhm da gibts mehrere Gründe:
1.) Ein Java Byte Code ist ja nicht direkt ausführbar. Das heißt die jvm muss
die Instruktion die im Bytecode steht erst interpretieren und danach
ausführen. Wenn du jetzt z.B. einen loop hast wird das so oft passieren
wie der loop durchlaufen wird. Im Gegensatz zu einem Binärprogramm
so wie es ein c++ Compiler generiert werden die dortigen Instruktionen
direkt ausgeführt und sie muessen nicht erst interpretiert werden
Ein Vorteil der Java Methode ist resultierend aus der Verwendung der jvm
die Plattforunabhängigkeit des Bytecodes (Write once, run everywhere)
Ein Nachteil is natürlich das die Performance drunter zu leiden hat (mögliche
Abhilfe wären die Verwenung eines Java Just in Time Compilers)

2.) Dein kompilierter Bytcode läuft in einer Sandbox (die jvm). Diese
überprüft während der Laufzeit die Gültigkeit deiner Instruktionen ( Bsp:
Überprüfung auf Nullreferenzen, etc) und generiert bei Fehlern
demetsprechende Exceptions und bricht den Programmlauf ab
Das schlägt sich natürlich auch auf die Performance nieder, schützt deine
Anwendung aber z.B. vor nicht berechtigten Speicherbeschreibungen bzw
zugriffen...

Das kannst du eigentlich alles in dem Link auch lesen.

Gruß

RedWing
 
Noch was man kann in C++ wenn man sich nicht genau auskennt
auch genug inperformanten Code produzieren.

In C++ kann man z.B. nicht atomare Objekte auch per Value übergeben.
Daraus folgt das das Objekt samt seiner internen Members (welche wieder
nicht atomare Objekte enthalten koennen) kopiert werden muss.
Übergibt man das Objekt per Referenz muss nur die Referenz kopiert werden, was natürlich um einiges Schneller geht.
In Java gibts sowas nicht. Dort werden alle nicht atomaren Objekte
per Referenz übergeben...

Das nur als Bsp wie man auch inperformant C++ programmieren kann.
Desweiteren hat C++ noch so einige Tücken die in Java eleminiert wurden,
(Bsp Garbage Collection) deswegen sollte man Java nicht gleich
abschreiben.

Gruß

RedWing
 
Zuletzt bearbeitet:
Zurück