1 基本数据类型
数据类型 | 位数 |
---|---|
byte | 8 |
short | 16 |
int | 32 |
long | 64 |
float | 32 |
double | 64 |
boolean | 1 |
char | 16 |
2 引用
一个引用(机器地址)占8个字节。
例如:Date date = new Date();则date这个变量占8个字节的内存。
3 对象
创建一个对象,如new Date(),除了Date对象内部存储的数据(年月日等信息)占用内存,该对象本身也有内存开销,为16个字节,用来保存对象的头信息。
4 计算机内存访问和使用方式
1 计算机访问内存的方式都是一次1个字节。
2 对于内存的使用,如果不够8字节,则自动填充为8字节。
例如public class A {public int a;},通过new A()创建一个对象,整型成员变量a占用4字节,对象本身16字节头信息,共20字节,由于不是以8为单位,所以自动填充为24个字节。
3 特殊对象:数组
在Java中,数组被限定为对象,数组会因为记录长度而需要额外的内存。
因此,一个原始数据类型的数组一般需要24字节的头信息(16字节自己的对象开销,4字节保存长度以及4字节填充)再加上保存值所需的内存。