堆、栈、方法区中存放的是什么,栈帧又是什么? | Eddie'Blog
堆、栈、方法区中存放的是什么,栈帧又是什么?

堆、栈、方法区中存放的是什么,栈帧又是什么?

eddie 352 2021-06-02

目录

堆、栈、方法区

String ss = new String("eddie");

    • 存放 new 出来的对象,在JVM内存结构是线程共享的
    • ss 变量,因为虚拟机栈线程隔离,每个栈数据都是私有,不能其他栈访问的
  • 方法区
    • “eddie” 存在方法区线程共享的,方法区所有静态变量、class文件常量池、类、类版本、字段、方法、接口和父类等信息描述

栈帧

执行一个方法时会产生一个栈帧,随后将其保存到栈(后进先出)的顶部,方法执行完毕后会自动将此方法对应的栈帧自顶部移除(即:出栈),当前方法的栈帧必然在当前线程对应的栈的顶部。