Memory
Bit. 0 or 1. Byte. 8 bits. Megabyte (MB). 1 million or $2^{20}$ bytes. Gigabyte (GB). 1 billion or $2^{30}$ bytes. 64-bit machine. We assume a 64-bit machine with 8 byte pointers (References). ・Can address more memory. ・Pointers use more space (some JVMs “compress” ordinary object pointers to 4 bytes to avoid this cost).
Typical memory usage for primitive types and arrays
primitive types (bytes):
boolean 1
byte 1
char 2
int 4
float 4
long 8
double 8
for one-dimensional arrays (bytes):
char[] 2N + 24
int[] 4N + 24
double[] 8N + 24
Typical memory usage for objects in Java
Object overhead. 16 bytes.
Reference. 8 bytes.
Padding. Each object uses a multiple of 8 bytes.
