Wie viele Bytes Speicher wird ein BigInteger-Objekt im Allgemeinen verwenden?
BigInteger verwendet intern int[]
, um die großen Zahlen darzustellen, die Sie verwenden.
Daher hängt es wirklich von der Größe der Nummer ab, die du darin speicherst . Der int[]
wird größer, wenn die aktuelle Zahl nicht dynamisch passt.
Um die Anzahl der Bytes zu ermitteln, die Ihre BigInteger
instance zur Zeit verwendet , können Sie die Schnittstelle Instrumentation
verwenden, insbesondere getObjectSize(Object)
.
Um sich zu überzeugen, werfen Sie einen Blick auf die Quellcode , wo es heißt:
%Vor%Folgend dieser Beitrag:
%Vor%Das sind insgesamt 20 Bytes + das Ganzzahl-Array. Ein Integer-Array der Länge N hat die Größe 4N + 24 (Array-Overhead + 4 Bytes / Integer).
Insgesamt ergibt das 4N + 44 Byte, abhängig davon, wie groß Ihre Nummer ist. Vergessen Sie nicht, dass der Verweis auf ein Objekt auch Speicher verwendet.
Edit: 16 zusätzliche Bytes als Objekt-Overhead, bringt es auf 4N + 60 Bytes. Hinzufügen von Padding zu diesem (jedes Objekt verwendet ein Vielfaches von 8 Bytes) erhalten wir zusätzliche 4 Bytes.
Dies führt zu 4N + 64 Bytes.
Die Größe des Java-Objekts hängt von seinen Feldern ab. Dies sind BigInteger-Felder
%Vor%können wir die Größe einer BigInteger-Instanz als
berechnen %Vor%Siehe Ссылка .
Es kann Integer beliebiger Größe darstellen. Zugewiesener Speicher für Ihre Anwendung ist Limit.
Tags und Links java biginteger