堆、栈

版权声明:这里只是小白学习记录笔记资源的位置,若有问题请大佬们指点(●'◡'●) https://blog.csdn.net/weixin_42448414/article/details/82731071

栈(stack)

  1. 栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)
  2. JVM为每个线程创建一个栈,用于存放改线程执行方法的信息(实参、变量等)
  3. 栈属于线程私有,不能实现线程间的共享
  4. 先进后出,后进先出
  5. 有系统自动分配,速度快,是一个连续的内存空间

堆(heap)

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

方法区(method area)

又称静态区
1. JVM只有一个方法区,被所有线程共享
2. 方法区属于堆,只是被用于存储类、常量的相关信息
3. 用来存放程序中永远是不变或唯一的内容(class对象、静态变量、字符串常量等)


这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42448414/article/details/82731071