一、什么是Java类文件    Java类文件是Java程序的二进制表示形式。每一个类文件代表一个类或者接口。不可能在一个类文件中放入多个类或者接口。这样就使得无论类文件是在哪一种平台上生成,都可以在任何主机上执行。    虽然类文件是Java体系结构的一部分,但是他并不是与Java语言不可分的。

你可以将其他语言的程序编译为类文件,也可以将Java程序文件编译为其他二进制形式。Java类文件是一个基于8-bit字节的二进制流。数据块顺序的、无分割符的、big-endian的形式存储。

二、类文件的内容    Java的类文件中包含了所有Java虚拟机所需要的关于类和接口的信息。

所有类文件中的信息都以以下的四种基本类型的存储:    Table 6-1。 Class file "primitive types"    u1    a single unsigned byte    u2    two unsigned bytes    u4    four unsigned bytes    u8    eight unsigned bytes    类文件中的主要部分以表6-2的顺序存储:    Table 6-2。

Format of a ClassFile Table    Type&    #9;Name    Count    u4    magic    1    u2    minor_version    1    u2    major_version    1    u2    constant_pool_count    1    cp_info    constant_pool    constant_pool_count-1    u2    access_flags    1    u2    this_class    1    u2    super_class    1    u2    interfaces_count    1    u2    interfaces    interfaces_count    u2    fields_count    1    field_info    fields    fields_count    u2    methods_count    1    method_info    methods    methods_count    u2    attributes_count    1    attribute_info    attributes    attributes_count

1、魔术编码(magic)    每一个Java类文件的开头四个字节都是魔术编码(OxCAFEBABE)。

通过魔术编码可以很容易识别类文件。

2、副版本号和主版本号(minor_version and major_version)    剩下的四个字节是副版本号和主版本号。但Java技术在进化时,一些新的特性可能会被加入到类文件中。每一次类文件格式的变化,都会相应的改变版本号。

虚 拟机通过版本号来识别自己能够处理的类文件。Java虚拟机往往只能处理一个给定的主版本号和其下的一些副版本号。虚拟机必须拒绝那些不再处理范围内的类 文件。

全部

java文件是什么_java类文件是什么?相关推荐

  1. find排除文件 linux_Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键...

    Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法 (1)Linux下find一次查找多个指定文件: 查找a.html和b.html find . -nam ...

  2. Linux查找多个文件、排除某类文件、匹配文件多处内容

    Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法 (1)Linux查找多个文件: 查找a.html和b.html find . -name "a ...

  3. java类的两个基本成分_Java类文件的基本结构

    欢迎来到""第二期.我们讨论了抽象计算机JVM.如果你对JVM还很陌生,你可以去看看.本期,我们稍稍窥探一下Java类文件的基本结构. 为旅行而生 Java类文件(.class文件 ...

  4. java 类文件_Java类文件概述

    所谓 Java 类文件,就是通常用 javac 编译器产生的 .class 文件.这些文件具有严格定义的格式. Java 源文件经过 javac 编译器编译之后,将会生成对应的二进制文件(如下图所示) ...

  5. java 文件转换字符串_java字符串文件互相转换

    Java字符串与文件的互转 Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理.Java中没有现成的API方法,自己手动实现一个,大家来分享. 一.字符串转换为文件 /** ...

  6. java获取文件地址吗_java获取文件所在服务器位置路径

    1.通过 import javax.servlet.ServletContext 类获取web 服务器所在真实路径 public ActionForward execute( ActionMappin ...

  7. java 批量重命名_Java实现文件批量重命名

    Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...

  8. java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader

    java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...

  9. java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...

    项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...

最新文章

  1. silverlight实现2D人物动画
  2. 错误日志这样排查,干活更得劲了!!
  3. 1.3 Java类的属性:成员变量的定义和声明
  4. 病案编码员需要计算机的什么知识,前辈分享:优秀编码员必须经历的成长过程,你到哪一级了?...
  5. pyqtgraph初探
  6. H5调用手机拨打电话的功能
  7. 进程 线程 多进程 多线程 父进程 子进程
  8. 什么是 gRPC ?
  9. 计算机专业审核作业指导书,专业审核作业指导书
  10. double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码
  11. VS2012下基于Glut glRotatef glTranslatef示例程序:
  12. linux systemd命令,systemd命令
  13. android查看native日志,Android 日志管理框架 NativeLogger
  14. Dubbo源码解析之SPI(一):扩展类的加载过程
  15. BCH的51攻击与防守
  16. eclipse SWT 中实现工程图标最小化到托盘,并只能右键托盘图标选择关闭
  17. 海客票务管理系统 ------ 项目总结
  18. 电子病历系统源码 winform 医院电子病历系统源码
  19. MySql InnoDB与MyISAM的区别
  20. 程序员的浪漫------下雪氛围圣诞树源码

热门文章

  1. 计算机毕业生怎么参加清华暑校,上完清华暑校后,怎么才能进清华?
  2. DataPipeline选择MQ模式的理由
  3. 利用百度进行人脸搜索
  4. 采集全国疫情数据(Python)
  5. Sequencer框架
  6. OpenSolaris/Solaris 常见问题解答
  7. 第55天:三战easy-dex
  8. linux gianfar 网口驱动源码,基于MPC8313ERDB平台的Marvell88E1111型网卡驱动移植(uboot+kernel)...
  9. Mac上关闭Microsoft AutoUpdate的升级弹窗
  10. 艾司博讯:拼多多判断正品的标准是什么