JVM内存管理及垃圾回收机制
jvm内存结构分为:方法区,栈内存,对内存,本地方法栈;
栈内存:存放局部变量,基本类型的变量和对象的引用变量,for循环内部定义也是局部变量。栈内存更新速度很快,但是生命周期也很短
堆内存:数组和new 类(对象),堆获得的空间比较灵活,也比较大。
堆与栈的区别很明显:
1.栈内存存储的是局部变量而堆内存存储的是实体l类对象;
2.栈内存的更新速度要快于堆内存,因为局部变量的生命周期很短;
3.栈内存存放的变量生命周期一旦结束就会被释放,而堆内存存放的实体会被垃圾回收机制不定时的回收。
垃圾回收机制
垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放没用的对象,垃圾回收也可以清除内存记录碎片。