Java虚拟机学习札记(1)

Java虚拟机学习笔记(1)
  Java虚拟机之所以被称为是“虚拟机”,是因为它仅仅是一个规范定义的抽象计算机,其规范定义了每个java虚拟机都必须实现的特性,而具体的实现可以根据平台不同而实现,可以是完全软件实现,也可以软件结合硬件实现。在这个规范的定义并非要强制规定Java虚拟机实现的体系结构,更多的是为了严格的定义这些实现的外部特征。规范本身定义了抽象的组成部分以及他们自己的交互,从而定义任何java虚拟机都必须遵守的行为。
  Java虚拟机也可能指以下三种情况:
  1、抽象规范
  2、一个具体的实现
  3、一个运行中的虚拟机实例
  当一个java程序在运行的时候,会创建一个java虚拟机实例,一个运行中的虚拟机实例天职就是负责一个运行的java程序。当启动一个java程序的时候一个虚拟机实例就产生了,当该程序运行结束时,这个虚拟机实例也会消亡。如果在一台pc同时运行多个java程序的时候,将产生多个虚拟机实例,每个java程序都运行在它自己java虚拟机实例中。
  java虚拟机的实例通过调用某个初始类的main()方法来运行一个java程序,而这个main必须是public、static、返回为void的,并且接受一个字符串数组作为参数,任何拥有这样一个main()方法的类都可以作为java程序运行的起点。