黑马程序员技术交流社区

标题: Java虚拟机JVM流程概述 [打印本页]

作者: jannnonx    时间: 2016-6-20 00:12
标题: Java虚拟机JVM流程概述
Java虚拟机与程序的生命周期
  一个运行时的Java虚拟机(JVM)负责运行一个Java程序。
  当启动一个Java程序时,一个虚拟机实例诞生;当程序关闭退出,这个虚拟机实例也就随之消亡。
  如果在同一台计算机上同时运行多个Java程序,将得到多个Java虚拟机实例,每个Java程序都运行于它自己的Java虚拟机实例中。

  在如下几种情况下,Java虚拟机将结束生命周期:
  1.执行了System.exit()方法
  2.程序正常执行结束
  3.程序在执行过程中遇到了异常或错误而异常终止
  4.由于操作系统出现错误而导致Java虚拟机进程终止

类加载器ClassLoader
  .java文件编译生成.class文件,需要装载到内存里面执行,装载到内存里面这个事情就是由类加载器完成的。

程序执行之前,会进行类的加载、连接与初始化
  1.加载
  查找并加载类的二进制数据。  

  2.连接
  连接又分为三个步骤:
  验证:确保被加载类的正确性。
  即验证class文件是否符合JVM的要求。
  准备:为类的静态变量分配内存,并将其初始化为默认值
  解析把类中的符号引用转换为直接引用。

  3.初始化
  为类的静态变量赋予正确的初始值,即在程序里为静态变量指定的初始值,或静态代码块中的赋值操作。
  静态代码块是从上到下顺序执行的,可以对一个静态变量多次赋值,最后的结果为静态变量的初始值。



作者: 孙自文    时间: 2016-6-20 00:37
赞一下,好好学习学习
作者: dreamhunter    时间: 2016-6-20 22:48
学习啦,谢谢楼主分享,辛苦啦
作者: 飞飞飞飞12138    时间: 2016-6-20 23:05
谢谢分享,对jvm理解又深了~~~
作者: 火影木叶    时间: 2016-6-20 23:26
总结的不错   受教了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2