栈与堆的理解

对于栈和堆的理解

栈(stack)

栈是有结构的,存储的时候按顺序存储,先存进去的在栈的最下面,遵循’先进后出‘的原则,栈中存放的是基本数据类型变量的值,以及引用数据类型中指向堆的引用(地址),占据的空间大小一般是确定的。可以简单理解为手机的运行内存,栈的存取速度比堆要快

堆(heap)

堆中数据的存放是没有结构的,存放的是引用数据类型,堆中存放的数据可以被反复利用,堆的存取速度比较慢,堆内存中存储的数据不会随着方法的结束而销毁,即方法结束后存储的数据还能被另一个引用变量所引用。

注意:所有方法中定义的内存都存储在栈中,随着方法的执行结束,与其对应的内存栈也会自动释放

    原文作者:唐爹
    原文地址: https://segmentfault.com/a/1190000020116915
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞