1.JVM启动流程

     java xxx --->  装载配置 ---->根据配置寻找JVM.dll --->初始化JVM获得JNIEvn接口 --->找到main方法并运行

                             |                            |                               |

                        根据当前路径             JVM.dll为JVM       JNIEvn为JVM的接口,findClass

                        和系统版本寻找         的主要实现            等操作通过它实现

                       jvm.cfg

2.JVM的内存结构

3、pc寄存器

   1)每个线程拥有一个pc寄存器

   2) 在线程创建时创建

   3)指向下一条指令的地址

   4)运行本地方法时,PC的值为undefined

 

4、方法区

   1)保存加载类的一些信息

     --类型的常量池

     --字段、方法的信息

    --方法字节码

   2)通常和永久区(perm)关联在一起

 

  5、java堆

   --和程序开发密切相关

  --应用系统中的对象主要保存在堆中

 --所有线程共享java堆

 --对分代GC来说,堆也是分代的

 --GC的主要工作区间

6、java栈

 --线程私有的

 --栈是有一系列帧组成(因此java栈也叫作帧栈)

 --帧保存一个方法的局部变量(函数的参数和局部变量)、操作数栈、常量池指针

 --每一次方法调用创建一个帧,并压栈

7、java栈 ——操作数栈

  --java中没有寄存器,所有的参数传递都用操作数栈

  

 

posted on 2017-01-20 11:17  落花*流水  阅读(138)  评论(0编辑  收藏  举报