JAVA内存模型分析:堆,栈,方法区。

java内存中分为好几块,本文只讲解最常见的三个java内存概念(堆,栈,方法区)以及它们之间的区别。
堆(下面文字版是我自己总结的,图片中是书面版+正式版):
1.堆中存储的是用new关键字创建的对象和数组
2.为线程所共享
3.是一片不连续的地址空间,存取速度慢,优点是栈可以动态地分配空间大小
栈:
1.在运行类的方法时JVM会在栈中为该方法创建一个栈帧栈:栈帧里是用来存放该方法中里存在的局部变量,对象的引用,基础类型的变量数据的
2.为线程独享
3.是一个连续的地址空间,存取速度快,缺点是堆的长度和大小是固定的,不能动态分配
方法区:
1.方法区本质上也是堆,所以地址空间不连续
2.用来存放:静态数据区,用static关键字修饰的变量,方法
常量池:类名,方法名,final变量值,字符串常量等
代码区:存放方法代码的地方
3.为线程共享
《JAVA内存模型分析:堆,栈,方法区。》
《JAVA内存模型分析:堆,栈,方法区。》
《JAVA内存模型分析:堆,栈,方法区。》

    原文作者:java内存模型
    原文地址: https://blog.csdn.net/eE1224/article/details/82429661
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞