Warum konvertiert Java Byte und kurze Operanden während der numerischen Werbung in INTs?
Frage
Was sind die Gründe für die Erweiterung kleiner Datentypen (z. B. Byte) auf int während der Numerische Werbung Prozess? Wäre es nicht möglich, die meisten Vorgänge direkt auf diesen kleineren Datenatypen auszuführen?
Lösung
Die VM ist eine virtuelle Maschine, die JIT übersetzt diesen in nativen Code und optimiert sie dann. Alle Register sind entweder 32-Bit- oder 64-Bit und "kürzere" Operationen sind nicht unbedingt und schneller.
Andere Tipps
Die VM unterstützt keine Ganzzahlen, die kleiner als 4 Oktetten sind. Wenn Sie also in der VM ausgeführt werden, arbeiten Sie auf 4 Oktetts oder 8 Oktettswunden. (Nun, für Arrays, Barray Sarray usw., nur nicht für einzelne Werte).
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow