Reputation: 17
my question is a very basic one but I still struggle to fully grasp it:
My task is to send a UDP packet (Java) that contains 512 byte of random data. So that equals 4096 bit. If I send a byte array (filled with "0") with size 4096, does that equal 512 bytes ?
Thank you very much :)
Upvotes: 0
Views: 1354
Reputation: 65
I have found an interesting article here : dzone.com
Here are the important parts :
How to calculate memory usage of a Java object?: Very simplified explanation of how one could calculate a memory of any Java object. For example, lets say, you want to calculate the memory of a Java object which holds two int variables, one boolean variable, one Long object, and a reference to other objects. The memory would turn out to be following:
8 bytes for the object header
2 x 4 = 8 bytes for two int variables
1 byte for a boolean variable
8 bytes (object reference) + 8 bytes for long data type = 16 bytes for long object
4 bytes for reference to some other object
The total size of the above mentioned object will be 8 + 8 + 1 + 16 + 4 = 37 bytes + 3 bytes (for padding) = 40 bytes.
How to calculate memory usage of a Java array?: The page presents examples on how to calculate size of a Java array object.
For example, lets say a Java array consisting of 20 Integer objects. Following is the detail on the size: 12 bytes for array header object (8 bytes for header and 4 bytes for storing length of the array) ==> 20 x 16 bytes = 320 bytes for integer objects.
Upvotes: 1