方法区、堆区、栈区存储数据的比较

小灰灰 2023-09-25 18:02 130阅读 0赞

方法区、堆区、栈区存储数据的比较

    1. 方法区
    1. 堆区
    1. 栈区
    1. 例子
    1. 堆和栈的区别

1. 方法区

  1. 保存所有的class文件和static变量与方法。
  2. 方法区中包含的都是程序中永远唯一的元素。

2. 堆区

  1. 存储一切new出来的对象。
  2. JVM中只有一个堆区,被所有的线程共享。

3. 栈区

  1. 存储基本数据类型的值和对象引用。
  2. 每个栈中的数据(基本数据类型和对象引用)都是私有的,其他栈不可以访问。
  3. 分为基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。

4. 例子

String str = new String(“hello”);
方法区:“hello”,属于static变量
堆:new出来的对象
栈:变量str

5. 堆和栈的区别

栈类似客栈,只管点菜吃饭,快捷但自由度小(数据大小和生存期是确定的)。
堆类似做饭,较麻烦但自由度大(可以动态分配内存大小,但存取速度慢)。

参考资料

  1. 堆、栈、方法区分别存放什么?
  2. java中的堆、栈、方法区等比较

发表评论

表情:
评论列表 (有 0 条评论,130人围观)

还没有评论,来说两句吧...

相关阅读