码迷,mamicode.com
首页 > 编程语言 > 详细

Java字节码方法表与属性表详解

时间:2018-08-20 22:53:23      阅读:530      评论:0      收藏:0      [点我收藏+]

标签:class   ssl   技术分享   lan   怎么   分享   一个个   code   tar   

继续跟着上一次【https://www.cnblogs.com/webor2006/p/9502507.html】的那10个代表code的字节分析,如下:

技术分享图片

技术分享图片

而这些字节其实对应的信息是它:

技术分享图片

所以问题就来了,aload_0不是助记符信息么,怎么就能够跟字节码文件中的字节对应上呢?所谓助记符其实也就是帮忙我们去记忆的符合,在底层其实也是对应的一个个十六进制的数字的,其它aload_0对应的就是2A这个十六进制数字,凭什么这么说?因为有jclasslib这么好的工具能帮我们对应上,将鼠标放在助记符上发现是一个可以点的链接,如下:

技术分享图片

点一下“aload_0”发现居然链到了oracle的官网上的说明上去了,如下:

技术分享图片

技术分享图片

技术分享图片

所以第一个字节已经分析完了,确实是跟助记符对应上了,接着来分析第二个字节:

技术分享图片

而在jsclasslib中对应的第二个助记符是“invokespecial”,点击链到官网看一下:

技术分享图片

而它的作用可以理解成就是调用父类的方法,而这个助记符是有参数的:

技术分享图片

其实也就是往后的两个字节就是该助记符所对应的参数,如下:

技术分享图片

对应常量池为:

技术分享图片

也就是构造方法嘛,如jsclasslib所示:

技术分享图片

10

Java字节码方法表与属性表详解

标签:class   ssl   技术分享   lan   怎么   分享   一个个   code   tar   

原文地址:https://www.cnblogs.com/webor2006/p/9508341.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!