现在的位置: 首页 > 综合 > 正文

Java的class文件

2018年01月16日 ⁄ 综合 ⁄ 共 809字 ⁄ 字号 评论关闭

最近在学习JVM,所以想把学完class文件这一章写个学习总结。具体的内容,以及对class文件的解析,我就不写了,因为《深入Java虚拟机》里有写到,我就不再多此一举再造个轮子了。而且在网上看到一篇写得不错的文章,讲得很容易理解,就是下面的链接了:

http://www.blogjava.net/DLevin/archive/2011/09/05/358033.html

我就讲一下我对Java的class文件的理解吧。其实现实生活中,一定是先遇到问题,然后才去想解决的办法。那么设计这么一个class文件,是遇到了什么问题呢?计算机的普及,软件版本的管理出现了问题,因为一个新版本软件要安装到所有的计算机上,是一件非常难管理的事情来的。所以就出现了Java,出现了JVM这些解决问题的办法。而class文件的就是这些解决办法的具体设计。而class文件的作用,就是为了平台无关性,网络移动性而设计的这么一个文件。

平台无关性,我想大家都可以理解,就是一个系统在哪个平台都可以运行。其实对于一般的程序员来说,有了JVM的帮助,确实就不需要处理平台之间的差异。但是对于JVM的开发者来说,他们还是要处理的。也就是将所有人需要处理的问题,变为了一小部份人需要处理的问题。这就需要定义一些规则。

网络移动性,指的是JVM在运行.class文件的时候,并不需要所有的类都加载完全后,才能执行的。也就是说,JVM要哪个类,然后它才去找这个类。这就要求,class文件比较小,不然我下载一个文件,要一个小时,这样谁也无法接受。

所以这一章主要讲的是:

1、class文件的规则,文件是怎样组织的,例如前四个字节是“魔术”。

2、class文件要求比较小,所以就约定了一些值,例如1代表什么,2代表什么,一些描述符的表示方法。

3、JVM在执行的时候,速度要较快,所以就多了一些设计。例如常量池的设计,用一个二维表(指针的指针)来记录一些信息。

抱歉!评论已关闭.