- 栈描述的是方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等),方法执行完毕,自动释放掉
- JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)
- 栈属于线程私有的,不能实现线程间的共享!
- 栈的存储特性是“先进后出”
- 栈是由系统自动分配的一个连续的内存空间,速度快
- 堆的访问是公共的
- 堆用于存储new出来的对象和数组(数组也是对象)
- 堆是一个不连续的内存空间,分配灵活,速度慢
- 需要垃圾回收器来回收
- JVM只有一个方法区,被所有线程共享
- 方法区实际也是堆,只是用于存储类、常量相关的信息
- 用来存放程序中永远是不变或唯一的内容(代码、静态变量、字符串变量)
标签:分析,存储,内存空间,线程,内存,JVM,方法 来源: https://www.cnblogs.com/Kundalini/p/11707796.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。