JAVA中栈内存和堆内存的特点。

栈内存:

    存储的都是局部变量,而且变量所属作用域一旦结束,该局部变量自动释放。


堆内存:

    存储是数组和对象(数组也是对象的一直)凡是new建立的对象,建立在堆中。

    特点:

            1.每一个实体都有首地址值。

            2.堆内存中的每一个变量都有默认的初始化数值,根据类型的不同而变化。(如:整数为0,小数为0.0)。

            3.垃圾回收机制。

     输入 int[] arr=new int[3];时,会在堆中建立内存,然后将首地址0x0045赋值给arr,此时,若输入 arr=null;申请的数组空间并不释放,被视为系统运行产生垃圾,与c++不同的是,c++程序产生的垃圾需要程序员手动运行析构函数进行回收,而JAVA通过垃圾回收机制,不定时自动回收。

 int[] arr=new int[3];

    

    

你可能感兴趣的:(JAVA中栈内存和堆内存的特点。)