java中的 堆,栈,方法区

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

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

方法区(静态区)

1:jvm只有一个方法区,被都有线程共享
2:方法区实际也是堆,只是用于存储类,常量相关的信息
3:用来存放程序中永远不变的或者唯一的内容(类信息[class对象],静态变量,字符串常量等)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,395评论 11 349
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 4,451评论 1 14
  • Java继承关系初始化顺序 父类的静态变量-->父类的静态代码块-->子类的静态变量-->子类的静态代码快-->父...
    第六象限阅读 2,176评论 0 9
  • 当世上水火已尽 如果你渴了 我会把血液灌进水壸 放在太阳上烧 我会把眼睛瞪大成永恒 替你等着沸点 不必打起精神微笑...
    浅得塾心灵文画阅读 151评论 3 17
  • 爱你本来的样子 亲爱的囡囡,你好,在这寂静的夜晚,一个人听着微课,竟不觉得害怕,因为我看到了你,就这样走到我的旁边...
    刘珍正面管教讲师阅读 158评论 0 0