JVM内存模型详解

程序计数器

线程私有,线程执行的字节码的行号

虚拟机栈

线程私有,生命周期与线程相同。每个方法执行的时候都会创建一个栈帧(stack frame)用于存放 局部变量表、操作栈、动态链接、方法出口。

本地方法栈

native关键字

方法区

线程共享,存储类加载信息、常量、静态变量等

线程共享,生命周期与虚拟机相同。存放对象实例,所有的对象的内存都在这里分配。垃圾回收主要区域。

  • 堆得内存由-Xms指定,默认是物理内存的1/64;最大的内存由-Xmx指定,默认是物理内存的1/4。
  • 默认空余的堆内存小于40%时,就会增大,直到-Xmx设置的内存。具体的比例可以由-XX:MinHeapFreeRatio指定
  • 空余的内存大于70%时,就会减少内存,直到-Xms设置的大小。具体由-XX:MaxHeapFreeRatio指定。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JVM内存模型详解 1.基本概念 JVM实际上是运行在一个具体操作系统上的程序进程,对Java代码而言,JVM就是...
    1angxi阅读 588评论 2 3
  • 1、什么是JVM? JVM是Java Virtual Machine的缩写,JVM是一种通用于计算机设备的规范,它...
    程序员七哥阅读 533评论 0 7
  • JVM内存模型 1、程序计数器 描述:程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器...
    Kate_Blog阅读 462评论 0 1
  • 文章转自 http://blog.csdn.net/u012152619/article/details/4696...
    云狗狗狗狗狗阅读 635评论 1 4
  • 说起素材收集,可能是很多人心中的一个痛点。 要么不是不会收集,没有库存,要么就是收集了一堆,却在关键时刻想不起来到...
    啥都懂的小灰阅读 197评论 0 0