00:00
最后啊,咱们来带着大家解读一下属性表集合,为什么叫最后呢?这是咱们class文件结构的最后一个部分,叫做属性表集合,那对应的呢,是我们看到的这个弹幕里边的最后这样一块数据,这块呢,就对应的叫属性表集合的信息,诶属性表集合的信息,那这块的信息呢,是我们一个属性,那其实除了这个之外呢,前边的咱们这里边儿我没有加颜色的,其实也是属性。其实也是属性,那就是从这块开始,这块咱们不是说过吗?咱有两个方法,它呢是方法的吸数器,有两方法,那前面这个方法通过这个灵气我们查看呢,呃,这是方法名嘛,咱们知道是那个in尼的方法,对吧?那这个方法里边呢,它有一个属性,那这个属性的描述呢,就是从这个位置一直到这个位置,这是我提前呢把这个位置给大家,大家描述出来了,一会儿大家就知道为什么是到这儿了,行,这呢是其中的,这其实也是个属性,然后另外的话呢,针对我们第二个方法,这个方法呢,我们这个一翻译知道这是一个爱的方法,咱自定义的这个方法的话呢,也有一个属性,这个属性呢,就是从它的下一行这个位置一直到这个位置,这其实是一个属性,这呢是第二个属性,然后这儿呢,是咱们说的这个第三个属性。
01:15
注意啊,这有三个属性,这三个属性的第三个属性是我们从这个格式上来讲的是这个位置。是这个位置,然后呢,只不过呢,我们说方法也好,字段也好,它呢,他们各自是不是都还可以有属性啊,咱们前面讲这个字段表的时候,不也提到过这个问题吗?它也可以有属性,然后这个方法的话呢,点开方法里边也以有属性,对吧?行,那咱们先来看一下这个关于属性表集合的一个描述。一个描述。呃,首先呢,我们来看一下咱们强调的说到的这里边儿这个第三个这个属性,这个属性呢,是在方法表之后的,它呢主要描述的是class文件所携带的辅助信息,所携带的辅助信息,什么辅助信息啊,比如说该class文件的原文件的名称。
02:04
就是我们这个class文件对应的是一个Java中的类嘛,对吧,你这个类或者是个接口,你是生命在哪个原文件呢当中呢,原文件的名称以及呢,任何带有re policy class或者policy brand这样的注解。那我们知道呢,这个注解,这是来衡量它的这个生命周期的,保存在自己码文件中,或者说呢,在运行的时候呢,也保留对吧?啊就是这样的一些注解信息。那么这些信息啊,通常被用于Java虚拟机的验证和运行,以及呢,Java程序的一个调试,一般无需深入了解,主要指的呢,是咱们说的这个位置。就是这块啊,这个一般大家做一个了解就行,咱们呢,一会儿这个解读到这儿的时候呢,咱们再说它,那解读这个第三个属性之前,咱们先带来那啃一下这里边这个硬骨头,这个硬骨头呢,就是分别对应的我们两个方法的这个属性。啊,方法的属性这不也说到了。在这个资料表中或方法表中呢,也可以有自己的属性,咱们刚才也提到了,对吧,用来描述某些场景专有的这个信息。
03:05
比如说我们这个字段表里边提到那个常量的问题,对吧,那方法表里边呢,就是我们这个方法的内部的这个执行语句,这个执行语句呢,其实都会翻译成自解码指令,就保存在我们这个方法里的后的属性当中了。行扣到属性当中,那其实我们这块一看的话呢,这个这个是不是还挺长的是吧,这里边儿呢,我们看起来呢,确实是有难度的,因为这里边这个信息啊属性比较多。呃,就是说不就一个扣子属性嘛,嗯,可惜的是这个扣的属性里边还有别的属性,那包括呢,每一个不同的属性呢,它的这个,呃,信息量呢也不一样,所以这块我们啃起来呢,会吃力一些。这个咱们这个一点点来整,那第一个方法跟第二个方法呢,实际上它这个扣得属性里边这个核心的内容啊,基本上是一样的,所以咱们分析完一个以后呢,大家在分析第二个的时候呢,就会比较清楚,就比较清楚,好那这块呢,咱们就开始呗,对吧,那开始之前呢,这块再稍微的描述一下这个话。
04:02
说呢,属性表集合这个,呃,没有这个限制没有那么严格,就是我们可能会有多个属性对吧,那他没有严格的一个先后顺序,这个只要呢不出名就行,而且呢,咱们还可以定义自己特有的这个属性信息,那这个特有的属性信息呢,扎va虚机在读取的时候,如果他要不认识它就不识别了啊,这样了解一下就行好,那属性表集合既然谈到具体的表好多的元素,那首先呢也是得有一个计数器。行,那这个计数器呢,咱们在谈到这块的时候,这不已经提到了,对于我们第一个方法来讲,就是in内的这个方法对吧,然后这个是零一,它就只有一个属性,然后下边呢,就是咱们具体的解读的过程。啊,现在咱们对这个属性表集合呢,有一个概述啊,有一个了解。
我来说两句