JVM运行时的内存结构图:
直接内存:
直接内存并不是jvm运行时数据区的一部分,所建议它不受jvm内存总大小的限制。个人理解直接内存就是物理机可用的内存空间。
程序计数器:
程序计数器是每一个线程所独有的一个很小的内存区域,并不是多线程所共享的共享区域。它可以被看成是字节码指令执行的指针,线程的分支,循环,跳转,异常处理,线程恢复等功能都要依赖这个计数器来完成。如果当前线程正在执行的是一个java方法,那么程序计数器指向这个字节码指令的地址,如果当前执行的是一个本地方法,则程序计数器的指向为空。
java虚拟机栈:
与程序计数器一样,java虚拟机栈也是线程私有的,声生命周期与线程相同。每一个方法在执行时都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等。
本地方法栈:
本地方法栈为使用到的Native方法服务。
java堆:
java堆是被所有线程所共享的一块内存区域。大致可以认为所有的对象实例及数组都要在堆上分配。但是随着JIT编译器的发展与逃逸分析技术的逐渐成熟,对象实例及数组在堆上分配也不是那么绝对了。java堆是GC处理的主要区域,可以通过-Xmx -Xms两个参数来修改堆内存的大小。
方法区:
方法区是各个线程所共享的区域。它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等。运行时常量池在jdk1.6之前也在这,但是jdk1.7之后常量池被转移到了堆上。
运行时常量池:
jdk1.6之前运行时常量池是方法区的一部分,jdk1.7之后被转移到了堆内存中。它用于存放编译期生成的各种字面量的符号引用,比如String就存放在此。
- 浏览: 17685 次
最新评论
JVM内存模型
- 博客分类:
- JAVA
相关推荐
jvm内存模型,jvm脑图,jvm调优,jvm垃圾回收算法,jvm垃圾回收器,逃逸算法等总结。
jvm内存模型.pdf
JVM内存模型深度剖析与优化
有关JVM内存模型的概述,用于对JVM的整体把握从而针对性的学习
JVM内存模型及分区
第二节:JVM内存模型 1.1 概念 1.2 JVM内存模型 1.3 Heap堆内存模型 第三节:定位垃圾对象的依据 1.1 引用计数法 1.2 可达性算法 第四节:垃圾回收算法 1.1标记清除算法 1.2复制算法 1.3 标记整理(标记压缩)...
jvm内存模型
主要为大家讲解JVM内存模型|内存结构|内存屏障,他们的概念,有什么关联以及各种的功能
jvm内存模型图
JVM内存模型YYDS
java jvm内存模型
JVM内存模型和性能优化
深入详解JVM内存模型与JVM参数详细配置.pdf
Java 虚拟机JVM内存模型与垃圾收集策略,看完此资料,JVM将不再话下
深入详解JVM内存模型与JVM参数详细配置,感兴趣的小伙伴们可以一块学习下。
JVM内存模型架构图,核心部分包括: GC主要在新生区(伊甸园区)、老年区 新生区(伊甸园区(对象都是在这个区new出来的)、幸存区to、幸存区from:幸存区位置会互相交换,谁空谁是to) 老年区 永久区:存储的是...
jvm内存模型组成部分
JVM内存模型以及垃圾收集策略解析 可以深入了解java虚拟机的原理