请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于虚指令和字节码的困惑

https://img1.sycdn.imooc.com//szimg/5ea1b4ff098132ea10220406.jpg

老师的原话是:红框内的是虚指令,也就是所说的字节码

问题:

    1.意思是反编译出来的内容,包括了虚指令和非虚指令(部分源代码本身)么?

    2.idea的反编译是把虚指令都换成了源代码了么?

    3.字节码就是虚指令这么一小部分,就是说字节码!=class文件,是class文件包括字节码么?

正在回答

1回答

翔仔 2020-04-24 12:13:35

同学好,感觉同学需要理解javap是个什么东西,javap是 JDK自带的一个工具,可以将 class文件反编译成字节码,它并没有将class文件反编译成 java文件,但是依然反编译成可读的格式。所以它会依据不同的参数,输出不同的内容,如果-c的话,输出的就是纯字节码,因为我们的字节码先前是被编过码的,所以javap可以转成可看的。

此外,idea会自带将字节码转成源码的插件工具。

字节码不仅包括虚指令,还包括其他的,比如定义结构 数据类型 方法 这些

https://zhuanlan.zhihu.com/p/45050364


0 回复 有任何疑惑可以回复我~
  • 提问者 莨菽菽 #1
    老师你的意思,class文件其实包括很多内容不止是,javap <options>可以选择展示class的其他内容,但是我们用的上的就是javap -c单纯只看字节码而已,因为字节码可以分析源码,是这么理解么?
    回复 有任何疑惑可以回复我~ 2020-04-24 16:16:50
  • 翔仔 回复 提问者 莨菽菽 #2
    同学好,可以这么理解哈,因为其他的有一些出栈入栈指令,我们不需要关心
    回复 有任何疑惑可以回复我~ 2020-04-25 02:13:02
  • 提问者 莨菽菽 回复 翔仔 #3
    老师,我钻个牛角尖啊,如果别人问,class文件就是字节码么?或者问字节码就是class文件么?这个要怎么回答?因为有时候课程会说class文件有时候说字节码文件,我想知道是不是同一个东西
    回复 有任何疑惑可以回复我~ 2020-04-25 13:18:52
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信