JAVA存储
寄存器
位于处理器内部,处理器按需分配,java无法控制
2. 堆栈
位于RAM区,创建程序时,需要知道存储在堆栈内所有项的确切生命周期。
3. 堆
位于RAM区,编译器不需要存储的数据在堆中存活时间。这种灵活性在存储分配及清理时会付出一定代价
4. 常量存储
存储与程序代码内部,嵌入式系统可以选择处于ROM中
5. 非RAM存储
独立与程序之外,如流对象和持久化对象
基本类型
基本类型,一般为特别小,简单的变量。如果使用new创建,并存于堆中,效率较低下。故基本变量直接存值,并置于栈中,因此更加高效。
基本类型 | 大小 | 包装器类型 |
boolean | - | Boolean |
byte | 8bits | Byte |
char | 16-bit | Character |
short | 16bits | Short |
int | 32bits | Integer |
long | 64bits | Long |
float | 32bits | Float |
double | 64bits | Double |
void | - | Void |
对象作用域
对象的引用超出作用域后,将无法通过引用访问对象,但对象还是存在于堆中,最终的命运是等待GC回收。
类的字段初始值
当类的字段为基本类型时,字段未被初始化,java也会为期赋予初始值。具体如下表:
boolean | false |
char | '\u0000'(null) |
byte | (byte)0 |
short | (short)0 |
int | 0 |
long | 0L |
float | 0.0f |
double | 0.0d |