|
Java |
.NET |
Zwischensprache |
Sowohl Java als auch .Net haben eine Zwischensprache als Zielsprache. In Java ist es der Java-Bytecode, in .NET die Common Intermediate Language.
|
Objektorientierung |
Beide Welte sind objektorientiert. Alles ist ein Objekt. .NET kennt aber mehr Techniken als Java, z.B. Attribute, Properties, Delegates, usw...
|
Garbage Collector |
Was den Garbage Collector angeht, ziehen Sun und Microsoft an einem Strang. Speicher, der nicht mehr referenziert wird, wird frei gegeben.
|
Typsicherheit |
Durch bestimmte Mechanismen wird in Java und .NET für Typsicherheit gesorgt.
|
Plattformunabhängigkeit |
Seit Jahren läuft Java auf den verschiedensten Plattformen. Damit ist die Plattformunabhängigkeit längst Realität.
|
Die Plattformunabhängigkeit ist ein fester Bestandteil der .NET Frameworks. Die Realität sieht im Moment zumindest anders aus. Es gibt zwar Gruppen, die Unix .NET beibringen wollen. Es sind aber die zahlreichen Bibliotheken, die portiert werden müssen und an denen es meistens scheitert.
|
Sprachunabhängigkeit |
Java war zum Zeitpunkt der Entwicklung nicht für die Interoperabilität mit anderen Sprachen gedacht. Mittlerweile gibt es immer mehr Sprachen, die auch Java-Bytecode als Zielcode erzeugen.
|
Das .NET Framework hatte von Anfang an die Interoperabilität als eines der Entwurfsziele. Microsoft hat bei der Entwicklung viel mit anderen Compilerherstellern gearbeitet und so ist die Sprachunabhängigkeit heute Realität.
|
Performance |
Da auch Geschwidigkeit eine große Rolle bei der Entwicklung von Microsoft .NET im Gegensatz zu Java gespielt hat, ist die Performance vom .NET Framework höher.
|
Größe des Zwischencodes |
Der Common Intermediate Language Code ist größer als der Java-Bytecodes.
|
Verarbeitung des Zwischencodes |
Der Java-Bytecode kann sowohl interpretiert als auch kompiliert werden.
|
Der Common Intermediate Language Code wird kompiliert, Interpretation ist laut Standard verboten!
|