Java的class文件

最近在学习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在执行的时候,速度要较快,所以就多了一些设计。例如常量池的设计,用一个二维表(指针的指针)来记录一些信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值