1、概述 在java中,内存分为两种,一种是栈内存,另一种是堆内存
2、***堆内存***堆内存是java内存中的一种,它的作用是用于存储Java中的对象和数组,当我们new一个对象或者创建一个数的时候,就会在堆内存中开辟一段空间给它,用于存放。
堆内存的特点:a>先进先出,后进后出;
b>堆可以动态分配内存,缺点是,由于要在运行时动态分配内存,存取速度慢。
3、栈内存 栈内存是java的另一种内存,主要是用来执行程序用的,比如基本类型的变量和对象的引用变量
栈内存的特点:a>先进后出,后进先出
b>存取速度比堆要快,仅次于寄存器,栈数据可以共享。
#3|1栈内存分配机制
栈内存可以称为一级缓存,由垃圾回收器自动回收。
#3|2栈数据共享
## 如果是两个对象的话,那就不一样了,对象指向的是同一个引用,一个发生改变,另一个也会发生改变
栈和堆的区别 差异: 1、堆内存用来存放由new创建的对象和数组 2、栈内存用来存放或者局部变量等。 3、堆是先进先出,后进后出 4、栈是后进先出,先进后出
相同:
1、都是属于Java内存的一种。
2、系统都会自动去回收它,但是对于堆内存一般开发人员会自动回收它。