Auf einem 64-Bit-Rechner ist die Größe eines int in Java 32 Bit oder 64 Bit?

Lesezeit: 3 Minuten

Auf einem 64-Bit-Rechner ist die Größe eines int in Java 32 Bit oder 64 Bit?

Benutzer-Avatar
Thomas Jones Low

32 Bit. Es ist eine der Funktionen der Java-Sprache, dass die Größe der Ganzzahl nicht mit dem zugrunde liegenden Computer variiert. Sehen den entsprechenden Abschnitt der Spezifikation.

  • Bereitstellung einer int Größe von 32 Bit in Java nach dem Kompilieren mit dem 64-Bit-Javac-Compiler und Interpretieren mit 64-Bit-JVM ist ein großer Nachteil aus der Perspektive der Skalierungsverbesserung der Anwendung? Denn wenn ich habe int Typ model_number das ist eine Verkettung auf Bitebene von short Typ parent_id und short Typ model_id. Wie verbessere ich model_number auf 64 Bit in bestehender App? verwenden long Typ würde viele Codeänderungen in der Unternehmens-App erfordern. Glaubst du, es war eine falsche Entscheidung zu verwenden? int auf dem ersten Platz?

    – Übertausch

    27. November 2014 um 3:39 Uhr


  • Kurze Werte sind immer 16 Bit. Ihre Verkettung ist immer 32 Bit (ein Int). Also ich würde den Code nicht ändern. Die Leistungsunterschiede zwischen dem 32-Bit-Int und dem 64-Bit-Int auf der größeren Plattform werden im JIT-Compiler berücksichtigt.

    – Thomas Jones-Low

    28. November 2014 um 16:12 Uhr


  • Ich meine, wenn ich mich verändere short zu int Typ für parent_id und model_iddann würde ich gerne daran denken model_number als 64bit.

    – Übertausch

    28. November 2014 um 23:58 Uhr

  • Ich wäre neugierig, warum Sie überhaupt eine Verkettung und nicht zwei Elementvariablen in der Klasse verwenden. Aber ja, wenn man das ändert parent_id und model_iddu musst umsteigen model_number auch.

    – Thomas Jones-Low

    30. November 2014 um 3:02 Uhr

  • Da model_number sitzt in der Datenbank für Persistenz. Also muss ich vor dem Speichern in der Datenbank auf Bitebene verketten. Meine Frage ist, wie mache ich model_number als 64 Bit danach, indem Sie es als deklarieren long? Dafür muss ich den vorhandenen vollständigen Code ändern, der 32 Bit verwendet int.

    – Übertausch

    30. November 2014 um 3:11 Uhr


Benutzer-Avatar
Erickson

Die Größe der primitiven Daten ist Teil der Spezifikation der virtuellen Maschine, und ändert sich nicht. Was sich ändern wird, ist die Größe der Objektreferenzen von 32 Bit auf 64 Bit. Dasselbe Programm benötigt also mehr Speicher auf einer 64-Bit-JVM. Die Auswirkungen, die dies hat, hängen von Ihrer Anwendung ab, können jedoch erheblich sein.

  • Kann Java-Quellcode, der mit dem 32-Bit-Javac-Compiler kompiliert wurde, in 64-Bit-JVM ausgeführt werden? Nutzt diese Klassendatei mehr Arbeitsspeicher?

    – Übertausch

    27. November 2014 um 3:45 Uhr

  • Ja. Die Klassendateien sind identisch. Es spielt keine Rolle, wo kompiliert wird, nur die Laufzeitumgebung.

    – Ericsson

    27. November 2014 um 4:10 Uhr

  • Der Link führt zu Java-Sprachspezifikationnicht der Java Virtual Machine-Spezifikation.

    – anishpatel

    22. Juni 2017 um 20:06 Uhr

Wenn Sie eine 64-Bit-Ganzzahl möchten, verwenden Sie long.

32 Bit. Java soll unabhängig von der Maschine oder dem Betriebssystem, auf dem es ausgeführt wird, gleich ausgeführt werden, und dies gilt zumindest für primitive Datentypen.

Das ist eine der Konsequenzen des Slogans „Einmal kompilieren, überall ausführen“: Die Java-Ausführung ist unabhängig von der Wortgröße und Endian-Zahl der zugrunde liegenden Hardware; die JVM funktioniert überall gleich.

Diese Unabhängigkeitsgarantie funktioniert viel besser als der Versuch, das OS weg zu abstrahieren 😉

Benutzer-Avatar
Tschad Okere

Ja, es sind 32 Bit

Benutzer-Avatar
svpino

Ein weiterer Punkt, der normalerweise missverstanden wird, ist die Tatsache, dass die Größe dieser Datentypen immer gleich ist, unabhängig von der Architektur, auf der unser Programm ausgeführt wird. Sie können Ihr Programm also möglicherweise auf einem 64-Bit-Computer ausführen, aber ein Int ist immer 32 Bit lang, sodass es denselben Bereich hat. Dies gilt sowohl für C# als auch für Java.

Hier ist ein vollständiger Artikel zu diesem Thema:

Integrale Datentypen in Java und C#.

1159140cookie-checkAuf einem 64-Bit-Rechner ist die Größe eines int in Java 32 Bit oder 64 Bit?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy