Java中堆和栈有什么不同?

提问者:帅平 问题分类:面试刷题
Java中堆和栈有什么不同?

 您阅读本篇文章共花了: 

1 个回答
Rae
Rae 管理员
为什么把这个问题归类在多线程和并发面试题里?因为栈是一块和线程紧密相关的内存区域。每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时volatile 变量就可以发挥作用了,它要求线程从主存中读取变量的值。
发布于:2年前 (2022-10-20) IP属地:未知
我来回答