(六)JVM笔记:class文件

作者: 为自己代颜_ | 来源:发表于2018-04-03 17:27 被阅读115次

(一)生成class文件
1.通过IDE自动帮我们build

2.手动通过javac去生成class文件,再通过java命令去执行class文件。
文件目录Hello.tex 命令行执行
···
javac Hello.java;
java Hello
···
命令行输出main方法中的内容
(二)class文件作用
1.记录一个类文件的所有信息,记住是所有。class内记录的信息要远远多于java源代码的内容。虚拟机编译生成class文件的 过程中自动生成很多信息。比如super() this关键字等等。。。
(三)class文件的结构
1.一种8字节的二进制流文件
2.文件中各个数据按顺序紧密的排列,无间隙(存储的内容几乎全部都是程序运行的必要数据)
3.每个类或接口都单独占据一个class文件(可以独自管理各自的内容,无须相互交叉)

4.数据项目分为2种基本数据类型(以及由这两种基本数据类型组成的集合):
4.1,无符号数,以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数

4.2,表,以“_info”结尾,由多个无符号数或其它表构成的复合数据类型

Class文件格式介绍此处不做详细解释可自行百度。
JVM可通过class文件中的字段找到任何java源代码中的任何内容
jvm执行的字节码jvm: java->class->jar
(四) class文件相对于移动端来说有哪些弊端
1.内存占用大,不适合移动端(class文件存储了java源代码的所有信息方法,属性,长量值等等,每个java源文件都对应一个class文件,一个app应用很多java文件)
2.class文件是堆栈的加栈模式,加载速度慢
3.文件IO操作多,类查找加载慢。每个class文件加载时都去加载寻找java源文件
基于以上缺点,移动端选择了dex文件下一章节来讲解dex的结构及应用场景。
下一章节链接:https://www.jianshu.com/p/51ea37021b84

相关文章

网友评论

    本文标题:(六)JVM笔记:class文件

    本文链接:https://www.haomeiwen.com/subject/sslchftx.html