jvm内存分为:线程私有内存:栈、程序计数器,
公共内存:堆、本地方法区、方法区、直接内存
栈存放线程的方法调用、返回值、局部变量、对象引用等信息。
程序计数器记录当前线程执行的位置。
本地方法栈存放jni,native方法调用信息,类似JVM栈。
堆存放所有定义的对象。分为年轻代、年老代,年轻代分为eden区和2个幸存区。
方法区,在hotspot虚拟机中也叫永久代。存放类信息、常量、静态变量、即时编译后的机器码。
直接内存即1.5后使用。比如内存映射文件。