Die JVM (Java Virtual Machine) ist plattformunabhängig ausgelegt. Wenn die Datentypgrößen für verschiedene Plattformen unterschiedlich sind, wird die plattformübergreifende Konsistenz geopfert.
Die JVM isoliert das Programm von dem zugrunde liegenden Betriebssystem und der zugrunde liegenden Plattform. Dies kann das Leben für die Durchführung systemspezifischer Arbeit erschweren, aber die Vorteile sind, dass Sie schreiben können - einmal, überall - das ist weitgehend richtig, mit einigen unglücklichen Problemen. Einmal schreiben, testen - überall ist ein viel praktischer Ansatz ).
Um eine wirklich umfassende Antwort darauf zu erhalten, müssten Sie eine Menge historischer Lektüre aus den frühen Tagen von Java machen. Natürlich hätten die Designer ein komplizierteres primitives System einbauen können. Als Java jedoch auf die breite Bühne kam, war es auf Applets ausgerichtet. Code, der in einem Browser ausgeführt wird und komplexe UIs organisiert, musste (und muss nicht) wissen, ob er auf dem berüchtigten MNS-49 (7 7-Bit-Zeichen pro Wort) oder dem Honeywell 68000 (4 9 - Bit Zeichen pro Wort), oder ein langweiliger moderner Prozessor. Es ist viel wichtiger als jeder andere Bit-Arithmetik in int
programmieren kann und weiß, was nach 32 Schichten passieren wird.
Die Flexibilität von C hat einige Vorteile (reduzierter Speicher- / Speicherverbrauch, wenn Sie 32 anstelle von 64 Bit verwenden), aber diese Vorteile tendieren dazu, weniger relevant zu werden, wenn sich die Hardware verbessert (dies wurde in den 70er Jahren entworfen) / p>
Diese Flexibilität ist jedoch mit starken Interoperabilitäts- und langfristigen Sehproblemen verbunden (Y 2038 Fehler).
Im Gegensatz dazu hat ein Java-Objekt sowieso einen gewissen Speicheraufwand. Das Speichern von 4 Bytes auf jedem Date-Objekt wäre also ziemlich sinnlos und nur mühsam.
Weil das Java ist. Weitere Informationen finden Sie in der Java-Sprachspezifikation .
Die Idee von Java war "Einmal schreiben, irgendwo ausführen" ohne erneut zu kompilieren. Das bedeutet, dass jede VM dieselbe Datengröße hat. Natürlich werden auf 64-Bit-Rechnern 64-Bit-Referenzen verwendet, auf die Sie jedoch keinen Zugriff haben.
Es funktioniert ziemlich gut, aber eine Sache, die ich mir wünsche, ist der Wunsch, wir könnten 64-Bit-Array-Indizes bekommen. Das war damals nicht wirklich wichtig, aber für große Speicherkarten ist es ein großer Schmerz. Sie müssen sie in 2 GB-Stücke aufteilen.
c Sprache hat ihren eigenen Vorteil, die Größe des Datentyps zu variieren. Der Hauptspeicher ist nicht zu viel ... jeder Programmierer muss Code schreiben, der platzoptimiert ist.
Heutzutage ist Platz kein Problem mehr ... ein portables Programm ist viel vorzuziehen.
Warum java portable java macht keine unterschiedliche Größe Datentypen
weil Java plattformunabhängig ist. Deshalb ist in Java die Größe des Datentyps festgelegt.
Tags und Links java size types primitive-types