zoukankan      html  css  js  c++  java
  • jvm-class文件简介

    jvm全称 java virtual machine (java虚拟机),也就是在计算机上再虚拟一个计算机,它存在于计算机内存中并运行在操作系统之上的。

    javap -v class文件名 > 输出文件名 命令:将class文件,翻译成可读懂的字节码指令文件,里面包含了各种各样的指令。

    字节码文件(Java中是16进制文件)是经过编译器预处理过的一种文件,是Java的执行文件存在形式,是一组以8位字节为基础单位的二进制流。各个数据项严格按顺序排列。但是不可以被系统直接执行,而是需要虚拟机解释执行。

    Class文件格式採用一种类似于C语言结构体的伪结构来存储数据。这样的伪结构仅仅有两种数据类型:无符号数和表。

    无符号数:是基本数据类型。以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数,能够用来描写叙述数字、索引引用、数量值或者依照UTF-8编码构成的字符串值。

    :由多个无符号数或者其它表作为数据项构成的复合数据类型。全部表都习惯性地以“_info”结尾。整个Class文件本质上就是一张表。

    魔数:

    每一个class文件的头4个字节称为魔数,它唯一的作用是确定这个文件是否为一个能被虚拟机接受的Class文件。Class文件的魔数为:0xCAFEBABE。

    版本:

    第五六个字节是次版本(Minor Version)。第7和第8个字节是主版本(Major Version)。
    高版本号的JDK能够向下兼容曾经版本号的Class文件,可是无法执行以后版本号的Class文件,即使文件格式并未发生变化,虚拟机也必须拒绝执行超过其版本号号的Class文件。

    常量池:

     
     
     
  • 相关阅读:
    Android自启动
    Eclipse导出Javadoc文件
    MAC 下Java Android 环境配置
    MAC 下如何切换Android模拟器的横竖屏
    程序员 需要掌握得600个英语单词
    网络编程 套接字socket 及 粘包
    网络编程 文件传输 基于UDP的socket serversocket
    网络编程 之 网络协议
    面向对象之:反射, 双下方法
    面向对象之 类的成员与异常处理
  • 原文地址:https://www.cnblogs.com/hongchengshise/p/10463842.html
Copyright © 2011-2022 走看看