2: Java虚拟机概述

Java虚拟机定义

Java虚拟机之所以被称为是“虚拟”的,就是因为它仅仅是由一个规范来定义的抽象计算机.

 

Java虚拟机是什么?

    1. 抽象规范
    2. 根据抽象规范的一个具体的实现
    3. 一个运行中的虚拟机实例

Java虚拟机抽象规范仅仅是个概念,一般所说的Java虚拟机都是该规范的具体实现,这个实现可能 来自多个提供商,并存在于多个平台上。它可以完全用软件实现,或者以硬件和软件相结合的方式来实现。当运行一个Java程序的同时,也就在运行了一个Java虚拟机实例。

这个实现了的Java虚拟机(Java Virtual Machine) 简称JVM, Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器(由Java栈模拟实现)等,还具有相应的指令系统。

Java虚拟机充当一个硬件平台,假设它等价于一个真实硬件系统,那么java语言就相当于c语言,而java语言编译后的class字节码文件则相当于针对这个硬件平台的汇编指令.

Java虚拟机的生命周期

1:一个运行时的Java虚拟机实例的天职就是负责运行一个Java程序。当启动一个Java程序时,一个虚拟机实例也就诞生了。当该程序关闭退出,这个虚拟机实例也就随之消亡了。如果在一台计算机上同时运行三个java程序,将得到三个Java虚拟机实例。每个Java程序都运行于它自己的Java虚拟机实例中

2:在Java虚拟机内部有两种线程:守护线程与非守护线程。守护线程通常是由虚拟机自己使用的,比如执行垃圾收集任务的线程。但是,Java程序也可以把它创建的任何线程标记为守护线程。而Java程序中的初始线程main()方法主线程,是非守护线程。只要还有任何非守护线程在运行,那么这个Java程序也在继续运行。当该程序中所有的非守护线程都终止时,虚拟机实例将自动退出。假若安全管理器允许,程序本身也能够通过调用Runtime类或者System类的exit()方法来退出.

posted @ 2012-12-13 20:30  日落城  阅读(361)  评论(0编辑  收藏  举报