开发者社区> 问答> 正文

Java中堆和栈有什么不同?

Java中堆和栈有什么不同?

展开
收起
游客bnlxddh3fwntw 2020-04-10 14:06:08 973 0
3 条回答
写回答
取消 提交回答
  • 结构不一样,放置的对象也不一样,等于说是分别为了解决不同东西的差异而设计的

    2020-04-11 13:03:04
    赞同 展开评论 打赏
  • 底层结构不同

    2020-04-11 12:24:26
    赞同 展开评论 打赏
  • 为什么把这个问题归类在多线程和并发面试题里?因为栈是一块和线程紧密相关的内存区域。每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时volatile 变量就可以发挥作用了,它要求线程从主存中读取变量的值。

    2020-04-10 14:06:16
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载