cxr1217 发表于 2013-1-29 22:40:23

JVM 相关概念

JVM: java virtual machine     
  java 虚拟机 ,是一个虚构出来的机器,通过在实际的计算机上仿真模拟各种计算机功能来实现的。
  Java虚拟机有自己完善的硬件架构,如:处理器,堆栈,寄存器等,还具有相应的指令系统。
  JVM屏蔽了与具体操作系统平台相关的信息,使得java程序只需生成在jvm上运行的目标代码(字节码),就可以在多种平台上不加修改的运行。
    
  字节码:通常是指已经经过编译,但与特定机器码无关,需要直译器转译后才成成为机器码的中间代码。
  字节码通常不像源码一样可以让人阅读,而是编码后的数值常量、引用、指令等构成的序列。
  字节码主要为了实现特定软件运行和软件环境,硬件环境无关。字节码的实现方式是通过编译器和虚拟机器。
  编译器将源码编译成字节码,特定平台上的虚拟机器将字节码转义为可以直接执行的指令,字节码典型的应用是java语言。
  在java里面是java文件编译后的class文件
  
  源码---> 编译器---->字节码---->虚拟机---->机器码--->运行
  
  class文件的格式:
  
ClassFile {      u4 magic;---------------------------------------->每个class文件的前4个字节被称为他的魔数(magic number):0xCAFEBABE,魔数的作用在于可以轻松的分辨出java class和非java class文件。      u2 minor_version;-------------------------------->次版本号      u2 major_version;-------------------------------->主版本号,通常只有定了主版本号和一系列的此版本号之后,JVM才会读取Class文件。如果Class文件的版本号超出了JVM的处理范围,JVM不会处理该文件。      u2 constant_pool_count;      cp_info constant_pool;      u2 access_flags;      u2 this_Class;      u2 super_Class;      u2 interfaces_count;      u2 interfaces;      u2 fields_count;      field_info fields;      u2 methods_count;      method_info methods;      u2 attributes_count;      attribute_info attributes;    } 
页: [1]
查看完整版本: JVM 相关概念