# 一张图详解虚拟机类加载机制
方法区:存放类信息、常量、静态变量,即时编译器编译后的代码。
通过:-XX:permSize和-XX:MaxPermSize设置方法区空间大小。
堆:虚拟机最大的内存,为所有线程共享。存放几乎所有的实例对象、数组。这里的对象通过GC自动管理。
通过:-Xms和-Xmx参数来调整空间大小。
虚拟机栈:描述java方法执行的内存模型。每个方法执行的时候都会创建一个栈帧,用来存储局部变量、操作数栈、动态链接、方法出口等消息。
本地方法栈:基本与虚拟机栈相同。
程序计数器:当前线程程序执行的字节码所在的行号,如果调用的是基本方法,计数器对应的数值为undefine。
