栈内存与堆内存

栈内存:栈内存首先是一片内存区域,存储的都是局部变量,凡是定义在方法中的都是局部变量(方法外的是全局变量),for循环内部定义的也是局部变量,是先加载函数才能进行局部变量的定义,因此方法先进栈,而后再定义变量,变量有本身的做用域,一旦离开做用域,变量就会被释放。栈内存的更新速度很快,由于局部变量的生命周期都很短。数组

堆内存:存储的是数组和对象(其实数组就是对象),凡是new创建的都是在堆中,堆中存放的都是实体(对象),实体用于封装数据,并且是封装多个(实体的多个属性),若是一个数据消失,这个实体也没有消失,还能够用,因此堆是不会随时释放的,可是栈不同,栈里存放的都是单个变量,变量被释放了,那就没有了。堆里的实体虽然不会被释放,可是会被当成垃圾,Java有垃圾回收机制不定时的收取。
 函数

相关文章
相关标签/搜索