JAVA存储

  1. 寄存器

        位于处理器内部,处理器按需分配,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