java堆栈

我们先大概看下概念:

1.栈

用户存储局部变量(在方法内的变量),当数据使用完,空间就被释放。

2.堆

用来存放动态产生的数据,比如new出来的对象。注意创建出来的对象只包含属于各自的成员变量,并不包括成员方法(有单独的方法区)。因为同一个类的对象拥有各自的成员变量,存储在各自的堆中,但是他们共享该类的方法,并不是每创建一个对象就把成员方法复制一次。

堆内存的数据有以下特点:

1.每一个实体都有内存地址;

2.每一个实体的变量都有默认初始化值(例如该实体的成员变量都有默认初始化的值)

3.实体在不再使用的时候,会被垃圾回收机制不定时的回收,不用手动释放。

我们一起看下数组在堆栈中是如何存储的:

java堆栈

这位老师以图解的方式讲解了堆栈是如何存储数据的,很清晰,大家可以借鉴!

https://www.cnblogs.com/ibelieve618/p/6380328.html