Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

1. 栈内存

       用于存储局部变量,当数据使用完,所占空间会自动释放。

2. 堆内存

        数组和对象,通过new建立的实例都存放在堆内存中。

        每一个实体都有内存地址值

        实体中的变量都有默认初始化值

        实体不在被使用,会在不确定的时间内被垃圾回收器回收

3. 方法区,本地方法区,寄存器


 

4.五片区域:

    寄存器,栈内存,堆内存,方法区,本地方法区。


    栈内存:存储的都是局部变量,一旦使用完,立刻被释放。

    堆内存:存储的是实体(对象)


1,堆内存中的每一个实体都有自己的内存地址值。

2,堆内存中每一个变量都有默认初始化值,不同类型初始化值不同。

        int 0double 0.0 char \u0000,boolean false.

3,当实体被视为垃圾时,会在不定时的时间内,被垃圾回收。