原文链接:http://hi.baidu.com/feiruinet/blog/item/37ff8019b3cd894843a9ada5.html

==================================================================================================================================

一:什么是虚拟机

      计算机通过软件来模拟来实现的一个类似硬件的机器,包括:处理器,堆栈,寄存器,指令系统,它是为了解决java跨平台而采用的一个中间的解决方案,只要你的语言代码最终能编译为java的中间代码.class字节码,你就可以使用虚拟机来解释你的代码。

二:虚拟机存在的环节

      1.讲到虚拟机,我们先看看虚拟机在整个java平台上的位置结构:

    

     2.整个java平台包含:java编程语言,java接口API,java代码编译后的字节码,以及虚拟机

     3.可以看到,java虚拟机在整个Java平台环节中,占据了非常重要的环节,从代码编译好后,调用java类库,以及代码的运行都交给了java虚拟机,虚拟机本身就是为了解决java跨平台而存在的,所以虚拟机本身肯定也包含了一个计算机所包含的内容:cup,堆栈,寄存器,指令器等,下面就重点说下虚拟机内部的构造情况。

三:虚拟机内部构造

     

    1.内部结构:

           1)指令集

           2)java堆

           3)java寄存器

           4)垃圾回收区

           5)方法区域

     2.java指令集:支持248个字节码,每一个字节码代表一个cpu运算操作

     3.java堆:保存运行时数据的保存,eg:类的实例以及数据占据的空间分配等。

     4.java垃圾回收区:负责java堆里不再使用的内存空间的回收,回收后再供java堆使用,具体的回收算法,以后再单独讨论

     5.方法区:保存编译好的方法java代码

     6.寄存器:保存机器的运行时状态


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐