java文件是什么_java类文件是什么?
一、什么是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类文件是什么?相关推荐
- find排除文件 linux_Linux下find一次查找多个指定类型文件,指定文件或者排除某类文件,在 GREP 中匹配多个关键...
Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法 (1)Linux下find一次查找多个指定文件: 查找a.html和b.html find . -nam ...
- Linux查找多个文件、排除某类文件、匹配文件多处内容
Linux下find一次查找多个指定文件或者排除某类文件,在 GREP 中匹配多个关键字的方法 (1)Linux查找多个文件: 查找a.html和b.html find . -name "a ...
- java类的两个基本成分_Java类文件的基本结构
欢迎来到""第二期.我们讨论了抽象计算机JVM.如果你对JVM还很陌生,你可以去看看.本期,我们稍稍窥探一下Java类文件的基本结构. 为旅行而生 Java类文件(.class文件 ...
- java 类文件_Java类文件概述
所谓 Java 类文件,就是通常用 javac 编译器产生的 .class 文件.这些文件具有严格定义的格式. Java 源文件经过 javac 编译器编译之后,将会生成对应的二进制文件(如下图所示) ...
- java 文件转换字符串_java字符串文件互相转换
Java字符串与文件的互转 Java中有时候需要读取一个文本类的文件,将其转换为字符串,然后做进一步处理.Java中没有现成的API方法,自己手动实现一个,大家来分享. 一.字符串转换为文件 /** ...
- java获取文件地址吗_java获取文件所在服务器位置路径
1.通过 import javax.servlet.ServletContext 类获取web 服务器所在真实路径 public ActionForward execute( ActionMappin ...
- java 批量重命名_Java实现文件批量重命名
Windows操作系统可以实现重命名文件操作,却不能实现批量重命名.本实例实现了批量重命名功能,可以将一个文件夹内同一类型的文件按照一定的规则批量重命名.用户可以给出重命名模板,程序可以根据模板对相应 ...
- java遍历文件和归类_java读取文件的两种方法:java.io和java.lang.ClassLoader
java读取文件的两种方法:java.io和java.lang.ClassLoader 什么时候使用java.io,什么时候使用java.lang.ClassLoader呢? (注:要是之前读xml文 ...
- java压缩zip文件夹错误_Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题)...
项目场景: Java将文件或者文件夹压缩成zip(修复文件夹中存在多个文件报Stream Closed错误问题) 问题描述: 最近的项目需要将多级文件夹压缩成zip,网上找了几个工具类,都会报错,所以 ...
最新文章
- silverlight实现2D人物动画
- 错误日志这样排查,干活更得劲了!!
- 1.3 Java类的属性:成员变量的定义和声明
- 病案编码员需要计算机的什么知识,前辈分享:优秀编码员必须经历的成长过程,你到哪一级了?...
- pyqtgraph初探
- H5调用手机拨打电话的功能
- 进程 线程 多进程 多线程 父进程 子进程
- 什么是 gRPC ?
- 计算机专业审核作业指导书,专业审核作业指导书
- double类型字符串转换成一个纯数字字符串和一个小数点位数的c++代码
- VS2012下基于Glut glRotatef glTranslatef示例程序:
- linux systemd命令,systemd命令
- android查看native日志,Android 日志管理框架 NativeLogger
- Dubbo源码解析之SPI(一):扩展类的加载过程
- BCH的51攻击与防守
- eclipse SWT 中实现工程图标最小化到托盘,并只能右键托盘图标选择关闭
- 海客票务管理系统 ------ 项目总结
- 电子病历系统源码 winform 医院电子病历系统源码
- MySql InnoDB与MyISAM的区别
- 程序员的浪漫------下雪氛围圣诞树源码
热门文章
- 计算机毕业生怎么参加清华暑校,上完清华暑校后,怎么才能进清华?
- DataPipeline选择MQ模式的理由
- 利用百度进行人脸搜索
- 采集全国疫情数据(Python)
- Sequencer框架
- OpenSolaris/Solaris 常见问题解答
- 第55天:三战easy-dex
- linux gianfar 网口驱动源码,基于MPC8313ERDB平台的Marvell88E1111型网卡驱动移植(uboot+kernel)...
- Mac上关闭Microsoft AutoUpdate的升级弹窗
- 艾司博讯:拼多多判断正品的标准是什么