00:00
那下面的话呢,咱们来看一下具体的这个字段表集合的这个情况啊,那咱们当前这个DEMO类当中就声明了一个属性,所以呢,我们看到这个计数器呢,就只有一个,但不管你是一个还是多个。假设呢,我们有多个,这呢,比如说我这块标识一下,这就相当于是有三个呗,对吧,三个呢,我们说其中的每一个呢,都是一个叫fields infer,每一个都是一个fields infer什么意思啊,就是我们整体来看有三个字段,这三个字段呢,我们就称为呢叫字段表了,里边有三个元素,但我们具体看每一个元素的话呢,这一个元素呢,又包含了好几部分的信息。因为大家知道我们定一个字段的话呢,有它的名字,有它的类型,包括它的权限修饰,包括如果你要是个常量的话呢,常量是不是还有一个它的具体的值啊。对吧,那这些信息的话呢,都算作是我们具体这一个字段里边的这个各个描述信息,那每一个呢,都是对应的一个in符,也可以看作是一个表,对吧?哎,也是一个表啊,那么这里边的这些信息的话呢,有的是有的,有的是没有的,所以呢,它是呃,一个布尔类型,比如说呢,这个作用域涉及到呢,它的权限修饰的问题,是实例变量还是类变量,有没有static的问题,是不是常量的问题,是不是what tell并发可见性的问题,是不是trans,就是支持这个我们去这个。
01:25
序列化的时候,要不要给他保存这个数据的问题,对吧,包括你字段的数据类型,字段名称等等这样的一些情况。好,这个大家了解一下就行,然后下边的话,我们看到说每一个这个字段的话呢,都会从这样几个方面呢去衡量,U2 u2 u2,然后后边这块呢,我们说关于这个字段的话呢,它也可以包含属性,所以这两块呢,整体来衡量就是字段里边的这个属性情况,前面的三个相对来说简单一些,依次呢,叫做访问标识,或者叫访问标志X access flags,对吧,字段名的索引,描述符的一个索引。
02:02
好分别呢是两个字节,那我们就意思来说,那比如说针对于我们当前这个。唯一的这个属性来讲,那这个信息咱们给它选中一下。比如我就用这个灰色的吧,它呢表示的就是当前我们第一个这个属性,或者说呢,咱们这里边儿也就这一个属性,它的一个叫访问标识。字段访问这个标识或者叫标志都可以,这呢写的是个零二,那零二是什么呢?我们打开看一下,这个零二的话呢,对应的我们叫access private是吧,就说明我们当前这个字段呢,是一个私有的,那很显然我们这儿呢,确实是不是一个私有的呀。没有问题对吧,那针对于其他这些呢,我们没有修饰,比如说你是私有的了,你就不能是public了嘛,显然的,对吧,我们要从这里边是不是选啊选择呀,Static呀,Final呀,Volatile啊,Transcend呀。这个呃三呀,Animal啊等等,从这里边去挑选,根据呢,我们这里边这个标识的这个值,大家呢去选择就可以了,那有的时候我们是可以选择一个或多个的,那又是一个组合的情况,这个咱们在前面讲到这个关于这个类描述的时候呢,其实也说过这个问,在类描述这个房源标识的时候也说过这个问题,对吧,在这不也说过这个类似的情况吗?好这呢我们就过了,然后接下来提到一个叫字段名的索引。
03:24
那接着往这看,找到我们的这个资源码文件下边这个叫字段名的索引。选一下。字段名索引行,那字段名索引当前我们这显示的零五对应的十进制的话呢,也是零五,那找一下这个零五。这是零五对吧,这零五的话呢,这是三个,也就是我们这三个呗,这三个其实大家如果还记得我们讲的那个常量池的话呢,这仨是不是对应的,就是我们说的那个叫number呀。
04:00
所以我们打开这。这仨吧,你看nu这里就指明咱们当前这个字段的名字,Nu好,这就是他的这个名字嘛。对吧,没问题,好再往后这个是叫零六。零六我们再往这个颜色呢,再加深一下。呃,加深一下这个呢,是针对我们这个字段这个描述符进行一个说明啊,就是字段描述符的一个索引。嗯,字段描述符索引,来回过来描述符的索引,描述符的作用呢,是来描述字段的数据类型,这个是对描述符统一的一个介绍,因为我们讲方法的时候呢,也会提到方法的描述符,第二方法的话呢,指的就是方法的这个参数列表和返回值,那现在我们看属看字段的话呢,主要指的就是你这个字段的一个数据类型。那字段数据类型,那外乎就是基本数据类型和引用数据类型对吧?当然word呢,对于方法来讲呢,也呃返回值类型,返回值这块呢,也算是一种类型叫做VO对吧?那这个呢,咱们在前面不也都已经看到过了嘛,所以这块呢就不用多介绍了,那针对于咱们当前这个DEMO来讲是0606。
05:17
这是零六就一个,这是一个49,那如果你还有印象的话呢,这个49对应的其实是不是就是这个I呀。这个I呢,就表示我们当前这个字段呢,是一个int类型。没有问题对吧。嗯,就是他行,那这呢,就是针对我们当前描述的这个三个主要的这个info信息。嗯,咱们要看啥,咱们来这。三个主要的这个音符信息,然后再回来看我们这个课件。回到这,那这三个呢,我们现在就描述完了,然后再接下来呢,是关于你当前这个字段的属性的集合,属性表的集合,那属性表集合呢,因为你涉及到属性集合了,所以呢,我们在前面又得提供这个集合的一个个数。
06:02
集合中的元素的个数提到一个叫属性计数器,也是两个字节,那我们看一下当前这个个数零,零。那相当于呢,就是我们当前这个字段呢,是不是就没有这个属性啊。是这意思吧,哎,当年这个字段就没有属性,就是零零,那这块咱们颜色要再深一下就看不见了,是吧,再换一个颜色啊。换这个吧。在这呢,加一个说明。就是当前我们字段的这个字段中。哎,字段中这个属性计数器。啊,或者叫字段的。属性计数器,那如果说我们当前这个字段有属性的话呢,这块呢,就会记录这个属性的个数,那这块记录完个数之后呢,后续就是你这个相应的这个属性的这个情况了,属性的一个描述,那如果我们这块写的零零呢,就意味着咱们当前这个属性呢,没有,呃,当前这个字段呢,没有属性,那又由于我们。
07:07
这个DEMO这个程序的话呢,这个类呢,是不是只有一个。嗯,这个字段计数器,那相当于字段呢就完事了,那再往下这块呢,就涉及到是咱们的一个方法的一个情况。能理解是这意思对吧?啊,就是我们下边方法这个情况啊,那咱们关于这个字段呢,从这个词解码的角度呢,就解释完成了,那如果大家有兴趣,你想看一看咱们这个杰卡lab这块,给我们生成这个呢也可以,你看这个属性这块呢,是不是就只记录了一个呀。对吧,只记了一个,然后我们打开,打开的话呢,我们看到有这样的几项信息,第一个呢,就是你的这个名字,刚才咱们不是也说到了吗?呃,它叫这个nu对吧,然后它的这个描述。这个刚才还看了一个个数,个数就只有一个对吧,然后它的这个描述符,这不是提到是一个I嘛,然后access flags,它的访问的这个权限,访问的这个。标识这个呢,是一个private,就刚才这三项我们这边都看得到了,对吧?诶就是这样的情况啊,那这里边儿呢,因为还提到了一个关于属性的问题,这块咱们给大家介绍一下。
08:10
属性表集合,虽然呢,在咱们当前这个程序当中没有涉及到,但是呢,有的这个字段呢,就会有这个属性表集合,来我们看一下啊。说呢,一个字段呢,还可能拥有一些属性,用于存储更多的额外信息,用于存储更多的额外信息,比如说呢,初始化值,一些注释信息等等。那有同学会想说,我们当前这个程序是不是也有一个初始化值,那为什么也没有这个属性信息啊?这里边儿主要指的是对于常量它才有这个属性,这个初始化的信息,比如说咱们当前这个DEMO中的这个number,大家看我如果给它加上一个final之后,是不是就变成一个常量了?那这时候就不能再赋值了,咱们把它俩注释一下,现在是一个常量了。我们把它呢,重新做一个编译。编译完以后呢,我们在这看一下这个Jack LA,我我就不在这块再导出去看了,咱就直接在这个插件这块看是一样的,对吧?好此时呢,大家你注意我们这个属性呢,还是只有一个叫number,但是呢,你看这块有一个下拉菜单,我们这块一点你会发现呢,此时多了一个,这就叫做属性。
09:17
这叫做这个属性,这个属性呢叫constant value,就是常量值,我这块呢也在课件里边给大家列了一下,叫以常量这个属性为例,那这个属性呢,记住了这样的几个信息,比如说我把这个呢截个图。这个咱们就不再给大家导出来,这样去拿着这个四金码这样去分析了,咱们就直接看一下这个给我们反解析以后的这个咱们做一个了解就行啊,此时呢,我们这个字段number呢,就有一个属性,这个属性呢叫constant value,那如果我们看一下它的这个属性的个数的话呢,就是一,那一呢,就是唯一的这一个,它好,它展开以后里边呢,它包含了有三个项。就是content value,这个info里边有三个项,第一个呢,就是属性名的一个索引,属性名的索引咱们其实在这儿呢,已经能看到了,属性名的一个索引仍然指向我们常量值。
10:10
实际上场景池这块呢,对应的是景七,这个七呢,你得在我们这个constant pool里边去看景七是不是就这个我们点开以后,哦,这块呢,相当于就指明你当前这个属性的是不是一个名字呀,Constant value对吧?哎,没问题,好,接着这个呢,叫attribute length,你当前这个属性的长度,我们看到这个长度是二。这个二是什么意思啊,这个大家呢,直接告诉大家就行,对于常量属性来讲呢,这个attribute length,它的值就是横为二。这个值呢,就横为二啊这个你所以这个呢就不用多解释了,然后再往下呢,叫constant value-index,就是我们这个常量值的一个索引,常量值的这个索引是对应的是这个常量值当中的第八个索引位置,第八个索引位置往这一放,你看这是一个阴记者引符,就是我们所说那个常量的这个自变量,对吧,这个基本数据类型的这个自变量inte这个值是一,相当于呢,诶就是我们也是通过。
11:10
这个属性引用了我们常量池里边的这样的一些结构,这呢属于这个。基本数据类型的这个自变量,这个值是一。OK,这呢,就是我们关于这个。字段的这个属性的一个介绍。哎,关于字段属性的一个介绍,就我们知道呢,这个字段呢,是也有可能有属性的,那咱们下边提到方法的话呢,方法呢就更是这样子了,方法也会有属性表,那属性表呢,就是专门的来谈一谈这个这个属性的一个情况,除了方法字段,还有我们当今那个class也会有相应的一些属性信息。这个呢,我们专门叫做attribute,跟咱们以前说的那个field是两个词,两个事儿啊,这个大家要小心一点行,那这样的话呢,咱们就把这个字段表集合这块就给大家说清楚了。
我来说两句