堆和栈的区别?
– 堆:new 创建 ,垃圾回收器回收,jdk8 字符串常量从方法区转移到堆中
1.堆是一个“运行时”数据区,类实例化的对象就是在堆上分配空间的。
2.在堆上分配空间是通过new等指定完成的
3.java操作堆和c++的区别?
java不需要在空间不用时显示的释放
4.java的堆是由垃圾回收机制负责处理的,堆是动态分配内存,垃圾回收器自动回收不需要的空间
5.缺点是:堆是动态分配内存,所以堆内存的存取速度较栈会慢
栈
1.虚拟栈和本地方法栈
2.栈中存储的是基本数据类型变量和对象句柄
3.栈的存取速度快
4.栈元素可共享
5.栈的内存大小和生命周期必须确定