Java中堆和栈区别
下文笔者讲述堆栈的区别说明,如下所示
堆和栈简介
堆和栈指JVM的堆内存和栈内存,那么分别用于存储不同的信息 如: 栈内存: 栈内存是JVM中的内存块 用于存储局部变量 如:定义在方法中的都是局部变量(方法外的是全局变量) for循环内部定义的局部变量,是先加载函数才能进行局部变量的定义 当方法进栈后,然后再定义变量,此时局部变量就放在栈内存中,当方法运行完毕释放,此时局部变量就会消失 这就是栈内存存储的内容,另栈内存速度非常快 堆内存: 存储的是数组和对象 new实例化的信息都会放在堆内存中 堆不会随时释放 堆内存是采用JVM的垃圾回收机制不定时回收
堆与栈区别
区别1: 存储内容不同 栈内存存储局部变量 堆内存存储实体 区别2: 更新速度不同 栈内存的更新速度要快于堆内存 由于局部变量的生命周期很短(压栈出栈后变量就消失了) 区别3: 变量的回收方式及生命周期不同 栈内存存放的变量生命周期一旦结束就会被释放 堆内存存放的实体会被垃圾回收机制不定时的回收
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。