栈内存
栈内存主要用处存放一些基本的数据类型,包含:String,boolean,Number,Undefined,Null。
堆内存
首先再堆内存中分配存储区域,然后将指针地址放到栈内存中。
差异
栈内存线性有序存储,容量小,系统分配效率高。而堆内存首先要在堆内存新分配存储区域,之后又要把指针存储到栈内存中,效率相对就要低一些了。
垃圾回收方面,栈内存变量基本上用完就回收了,而推内存中的变量因为存在很多不确定的引用,只有当所有调用的变量全部销毁之后才能回收。
垃圾回收机制
垃圾回收并不是清楚,而是将其设置为null(引用堆中的对象,并且将所有引用该地址的对象都设置为null,不会及时清楚,垃圾回收车会根据内存情况适当的情况清楚堆中的无用对象)