Memory Usage in Java

Shipilev, Aleksey shipilev at amazon.de
Fri Aug 8 16:35:14 UTC 2025


Hi Kenneth,

The answers to most of these questions are, “No, this is not how it works in any modern JVM”.

I would really recommend playing with JOL, especially look through its Samples:
https://github.com/openjdk/jol
https://github.com/openjdk/jol/tree/master/jol-samples/src/main/java/org/openjdk/jol/samples

And maybe read this for even more discussion:
https://shipilev.net/jvm/objects-inside-out/

Thanks,
-Aleksey

From: discuss <discuss-retn at openjdk.org> on behalf of Kenneth Fogel <kfogel at dawsoncollege.qc.ca>
Date: Friday, 8. August 2025 at 18:11
To: "discuss at openjdk.org" <discuss at openjdk.org>
Subject: [EXTERNAL] Memory Usage in Java


CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.


Please let me know where I might ask this question or find the answer if this is not the right place.

In a book I am working on I am writing about how Java deals with memory allocation for the primitive types on a 64 bit CPU. I know the size of primitive variable types such as byte is 1, int is 4, etc. and that the size is related to the range of allowable values. From my C/C++ days I learned that the actual amount of RAM used was related to the word size of a CPU so that when a byte is read you are really reading a word. This meant to me that if I had 10 variables of type byte, not in an array, it would consume 80 bytes of RAM. From my reading it appears to be the same in Java except for arrays. Is this accurate? For example, an int is 4 bytes but when Java runs on a 64 bit CPU is it really reading and writing 8 bytes? If it is, can we say that the 4 bytes of padding is RAM dead space that cannot be used for anything else?

Thank you for your time,

Ken Fogel





Amazon Web Services Development Center Germany GmbH
Tamara-Danz-Str. 13
10243 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/discuss/attachments/20250808/c9ded6cb/attachment.htm>


More information about the discuss mailing list