1
1
一般的堆栈和堆每个线程都有一个 堆栈 . 每当调用函数时,参数和一些指针都会被推送到堆栈中(堆栈也会随之增长) 每当创建局部变量时,它也会被分配到堆栈上。 当变量的生命周期结束或函数返回时,所有这些东西都将从堆栈中弹出,从而收缩。 这个 堆 是内存中由进程的所有线程共享的一部分。
可以使用以下命令在堆上分配空间
由于堆可以被其他线程使用,因此它不会自动释放。 java中的堆栈和堆在java中,原始局部变量将被分配到 堆栈 如果你调用一个方法并向其传递一个基元类型,java将复制变量的内容(按值调用)并将该副本传递给该方法。
每当您使用以下命令创建对象时
如果将对象(引用)传递给方法,则引用将被复制,因此方法将修改同一对象(通过引用调用)。 JVM将检测对象是否未被使用,并自动释放它(垃圾收集)。 |
2
0
Stack用于方法内部的临时数据(变量)。 Heap用于存储寿命更长的数据,主要是“new”命令所存储的所有数据。 |