浅析Class文件反编译后的文件与源码文件大小关系

本文探讨了Java文件在Eclipse中编译成.class文件后,使用反编译工具还原的过程及注意事项。实验对比了源码与反编译后代码在删除无关代码和注释后的文件大小变化。

1、  编辑java文件后(有注释的情况下)

  

wKioL1ipXZCzCkEGAAA6QvABMNY719.png

wKioL1ipXZGRM1dEAABEApWGtKU688.png

使用eclipse编译后成为.class文件后

wKioL1ipXeqDs0b6AABR-_Ajxbk607.png


2、 使用反编译工具编译后使用自带(Ctrl+S)的保存源码方式保存

    

wKioL1ipXnPTcCF3AAAxfHZSZZM220.png

wKiom1ipXnOQ2PvUAACEueGlm9w632.png

3、 仅复制java翻译后的信息

wKioL1ipXy2CwehcAABRhcj5wno382.png

wKioL1ipXy7QtdCQAAEODzmpu-w310.png

其大小目前为149字节。

    后续处理

a.      现在删除掉【第一步】源码文件中无关注释行,其大小变为118字节,但是其功能仍能实现。

b.      现在将【第二步】中反编译工具保存的源码删除了无关部分,再看其大小。发现只有通过删除无关代码和空行后,才能使得其大小与第三步得到为java文件大小一致。

c.      空格和字符数不一致都会导致两个文件大小出现差异。

 结论

Class文件反编译后得到的JAVA源码的行数和源码会有部分的变动,并且反编译后得到的java文件的注释行是没有的。这些都会导致反编译得到的文件的大小会与源码包有差异。只有在两个文件的空格和字符数都一致时,两个文件的才会表现出大小一致。



本文转自 ping9527 51CTO博客,原文链接:http://blog.51cto.com/babyhanggege/1899257,如需转载请自行联系原作者

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值