00:00
那下边呢,咱们带着带着大家呢,来解读一下这个第二项,第二项的话呢,我们说这个T呢叫零九,那零九的话呢,这个对应到我们这里边,嗯,咱们一看呢,是不是关于叫field reference,相当于关于我们这个字段的一个描述,对吧?哎,这就是对于我们这个第二项那字段的描述的话呢,诶它也有两个UR,第一个U2呢,就是你当前这个字段呢,所对应的这个类啊,所对应这个类的一个信息啊,那既然是类信息也指向的是一个class infer啊,其实跟我们刚才方法这块类似,那我们看一下当前咱们这个指向的是零三,那零三的话呢,就是我们这个class infer的个索引的一个项啊,零三,零三是不是就对应到这儿了。对应到这儿啊,那零三其实就是我们这一项呗,这一项呢,你看它对应的这个,呃,对应的这个它是零三了哈,它是一个class in了,嗯,它的这个。嗯,这个我们回来在这块来翻译啊,Class INF for,嗯,这个零七找零七呗,嗯,这个index呢是,嗯,是一个index,是一个索引,指向全限定名常量池的常量项的一个索引,这个值是。
01:09
14注意这个14呢,我们要给它翻译成十进制,十进制的话呢,就是20 20呢,就是我们这个缩引项二十来回过来找这个20。20。嗯,这这个是20,好,那这个20的话呢,它也是个字符串了,就相当于你这个字段,咱们回过来看啊,这不是你想描述这个字段呢,你是哪个类中定义的嘛,呃,然后这块呢,指向的这个类型,这个类型呢,说我这个字段信息在这儿存着呢啊就大家去这儿找就行,呃,16就从这开始,一直到我们这个6F就行,嗯,从十,呃63开始吧。我们来这看,找一下这个63这边那63开始大家往后走,一共呢数22项,那其实大家这块你往后数,你看大家看一下,顺便看一下这块。是不是一直到这6F就完事了,哎,那当前你这个字段是哪一个类中定义的呢?是com,哎2I的硅谷JAVA1下边的这个DEMO中定义的,哎,咱们相当于是现在其实想刻画的呢,就是我们这个属性。
02:10
这个属性的话呢,是不是就在这个DEMO里,哎,咱们叫属性了,其实应该叫字段啊,是我们这个DEMO这个类中刻画的,对吧,那这呢就指明了你这个类的这个字段呢,所属的这个类,那就是我们这个零三啊它来刻画的,那在我们这个图上这块来看的话呢,就是这样子的。啊,怕大家晕啊,我们及时的说一下,这一项里边呢,有一个U2,表明了你这个字段的所属的类型,它呢是先指向了我们这个零三对吧,零三这块呢,是不是又指向了我们这个20啊,在这块呢,做了一个刻画是诶com艾特硅谷Java一下的DEMO,那指明了我们这个数字段啊,它的一个这个所属的类啊,然后再往下呢,这有一个零零十三,那我们看一下它刻画的是什么。它刻画的是我们这个字段的描述符啊,Name and tap,好,这个指向呢,是name and tap的这个索引项,索引项的这个值呢是13 13,注意需要给它翻译成十进制19吧,OK 19。
03:13
别晕了啊,这个大家处理的时候要小心一点。在这,嗯,这个是不是就我们所引的这个19项啊,那相当于呢,我们现在呢,呃,先找到这个13是对应的这个呢,是呃是19 19是不是就找到这儿了。那现在呢,我们对这个字段呢,进行一个描述,这个描述的时候呢,就是这个第二个U2嘛,他就找到了我们这个19了。那下边呢,就我们来看这个19,这个19的话。它是吧,嗯,它呢,也有一个零五啊,有一个零六啊,05060506,你看这是又又回归到两个字串的这个描述了,找一下0506。那这个是零五,然后后边这个紧跟着就是零,呃,这啊紧跟着这就是零六呗,行,那我们回过去,咱们来看一下这块啊。
04:04
回过来看一眼啊,呃,这块开始的,这是零五。这块开始的是吧,哎,有三项啊,那就这三项一个两个三个啊,一个两个三个好这个呢,是不是就表明我们这个字段的一个名字啊。那叫nu,嗯,咱们这个属性不就是叫nu嘛,对吧,没问题,好然后再接下来呢,下边是这个零六就一个啊,那就是这个49 49这块,你看是个IO,是对于我们这个字段的这个类型,是不是进行这个口号呀,这个类型呢,咱们,诶前面呢,是不是也提到过这个事了。咱们是放在哪了呢?嗯。嗯,应该在这块,也也也还有这个说明往下看。诶,没在这儿。啊,在这呢是吧,那这个I的话呢,咱们说就是定义的int类型,那要是其他类型的话呢,它就会出现其他这个字符,咱们现在呢,显示的是个I表示的我们定义的就是个int类型的数据,对吧。
05:01
没有问题,行,这呢,就是咱们对这个第二项呢,做了一个解读。那第二项跟我们刚才说这个方法类似,这个呢,就是你这个字段呢,所属的类的一个描述,最终呢,是不是也回归到一个字串上,是我们20这一项,然后这个13的话呢,对应到是我们内曼tap啊,其实是对应我们这这块是吧,13对应这块是19吧,然后这个呢,又回归成我们对两个,呃,这个字段的一个是它的名称的描述啊,就这三项NUM一个呢,是你这个字段的类型的一个描述,OK啊这呢我们就解读完了,我们自此呢,只是解读了前两项对吧,解读了前两项,那通过这个前两项啊,咱们自己解读,大家呢,来回过来看一下我们这个自动生成的这个,大家现在呢再去看它,我觉得呢,就很好去理解了。什么意思,看一下啊,咱们刚才呢,在这个表格里边自己解读的,然后我们再看这个呢,你会更清晰,首先呢,哎,他把从。索引为一,一直到索引21看全都给我们列出来,他们每一个tag对应的类型是什么,这块也都给我们标识出来了,这针对第一个,针对第一个这个method reference呢,咱们说它里边呢,主要有两项,一个呢是你这个呃,所属的类,一个呢是你关于这个方法的名称啊和描述符的一个情况,这就这两项嘛,这两项呢,在咱们这个表当中,诶就是这两项,一个呢是你所属的类,一个呢是你这个name and type对吧?那关于这个class name,咱们看到这个值呢。
06:29
它对应的这块呢,叫景似啊,就是你这个类型指的是啥呢?指的是这一项吗。就是咱们刚才说的是不是指向这一项啊,而这一项呢,咱们把它打开。这一项打开之后呢,它呢,是不是就指向了这个21这一项呀,21这一项我们把它一打开,哎,这一项描述的信息就是它。那那其实我们整个在这块看呢,就是你是指向这个景四,那景四里边呢,又指向21 21的信息是什么呢?是它。所以他就直接给我们列到这儿了,本质上这块呢,就是我们21的这个,哎字串自变量对吧,然后内曼type的话呢,是先指向这个18是不是叫内type嘛,那内曼type呢,这里边呃,一个呢是指向你这个方,一个是说明方法名,一个是方法的这个描述符,又指向了七和八,咱们刚才不也都说过了吗?那把这两个呢,其实它就整整个呢呈现在这儿了,就是你指向是18 18里边呢,呃,一个是这个,一个是这个,那这不是这两项也帮我们呈现出来了,那包括这个属性大家点开也是你所属的类是什么呢?这不是最终它先指向的是这个景三,哎第三项这个第三这项呢,又指向这个20项,20项呢,这不有个字误串,所以直接在这块就把这个字串写到这了。
07:40
然后内曼type的话呢,指向的是19嘛,19这块呢,又指向了是井五井六啊五六,哎五六这块呢,再回过来,哎,就是一个是表明这个字段名,一个是字段的这个类型。对吧?诶这就清楚了哈,相当于呢,大家会发现我们这个常量池里边,咱们不是说主要的内容呢,一个叫做自变量是吧?像这个呢,就字符串的一个自变量,另外呢,就是主要我们这些引用,引用呢,有这个属性的引用,方法的引用,包括类型的引用,大家会发现它的最终这些信息是不是也都会指向我们对应的这个自变量,对吧?哎,这就是我们说整体上这样的一个情况,那这两项呢,清楚之后呢,后边这个项呢,大家是不是就不用我这块一个一个的这样去解读了吧。
08:25
能理解吧,比如说我们这个第三项叫0707的话呢,呃,咱们一刻画这个零七,你得看这个表。啊零七它描述的是一个class对吧,Class的话呢,只有一个index,哎,就是一个全限定名,哎,这个权限名index,你看这个值是几呢?诶你看这个值是14是吧,14呢,对应的我们十进制呢叫20。哎,那二十二十咱们刚才其实也看过了,嗯,那对应过来的就是找我们这个20这一项。是不是21项其实就是我们关于DEMO的这个类的一个描述嘛,啊class INF for是吧?诶所以后边这个项呢,就呃,其实不用给大家一个个这样去说了啊哎,你要在这块看的话呢,就是他他这块刻画的呢,是20这一项。
09:10
那就是它指向的是这个20是吧,20的话呢,咱们来这块一找啊,人家刻画的就是这样的一个字符串信息,相当于关于这个类型的描述呢,就指明的是它,然后在下边这块啊,其实咱们刚才讲这个方法的时候呢,这不也涉及到过,就是这个object呗,对吧?哎,然后下边呢,这就是一堆字符串。呃,一堆字符串的一个信息,然后这块呢,是关于我们有属性啊方法呀,还有这个内type的描述,但如果我们当前这个类中的方法属性比较多,那相应的这些情况呢,也就会多一些啊,那字符串呢,自变量相应的也会多一些,好,那通过我刚才这个讲解。哎,大家呢,哎,自己沉淀一下,甚至说你自己呢,把这个呢,自己画一下,然后试着去找一找。哎,你看看是不是啊,能够听清楚我刚才说的这样的一个过程啊,应该相对来说,我觉得哎,说的算是比较清楚了,尽量呢,咱们借助了几个工具是吧,诶给大家呢,做的这个说明啊,那咱们这块呢,也用一个颜色来标识一下,一个是它啊一个呢是。
10:10
哎,这个颜色,哎,这两个颜色呢,共同来表达的,咱们说叫哎常量池表啊,常量池表数据是吧,哎表数据一,哎它们两个间隔着这样来表示的,哎这样子。好,那剩下这些呢,咱们其实就不用过多的去解读了,主要呢,像比较困难的就是前两个啊,解读完之后呢,后边这些啊,大家都相应的都能够去理解。好,那么关于常量池的这个具体细节,这个数据的解读啊,咱们就说到这儿,咱们也借助了一下这个,呃,Jack lab这个工具帮我们自动生成的这个咱们对照着做了一个说明。
我来说两句