jvm内存结构(一)

    学习之余,整理了下JVM的资料

堆:

需要重点关注的一块区域,涉及到内存的分配与回收

方法区:

用于存储已经被虚拟机加载的类信息、常量、静态变量等数据,也叫永久区

常量池:

用于存放编译期生成的各种字面量和符号引用(JDK6在方法区、JDK7在堆中)

虚拟机栈:

栈里面存放着各种基本数据类型和对象的引用

方法执行时会创建一个栈帧(存储局部变量表、操作数栈、动态链接、方法出口等信息)

每个方法的从调用到执行完成,对应着栈帧在虚拟机栈中入栈和出栈的过程

本地方法栈:

本地方法栈保存的是native方法的信息,当一个JVM创建的线程调用native方法后,JVM不再为其在虚拟机栈中创建栈帧,JVM只是简单地动态链接并直接调用native方法 

程序计数器:

较小的内存空间,当前线程执行的字节码的行号指示器;各线程之间独立存储,互不影响

版权声明:本文版权归作者java潇邦和博客园和CSDN共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
原文地址:https://www.cnblogs.com/sunrisexq/p/8637952.html