乐趣区

Java栈区堆区和方法区的解析

栈区

  1. 栈区描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧 (存放存储局部变量、操作数、方法出口等)
  2. JVM 为每个线程创建一个栈,栈属于线程私有,不能实现线程间的共享! 用于存放该线程执行方法的信息 (实际参数、局部变量等)
  3. 基本类型变量去,执行环境上下文,操作指令区 (存放操作指令).

堆区

  1. 堆用于存储创建好的对象和数组 (数组也是对象)
  2. JVM 只有一个堆,被所有线程共享
  3. 堆是一个不连续的内存空间,分配灵活,速度慢!

方法区

  1. Jvm 只有一个方法区,被所有线程公用
  2. 存放整个程序中唯一的元素。用于存放类,常量相关的信息。如 class static 变量.
退出移动版