java接口会被编译吗_什么叫反编译?你把java程序(jar)交给别人,会被人看到源码吗?...

( Java面试题  | Java 学习指南 )

※ 编译 Compile

将一个 *.java文件编译成 *.class 文件的过程,称为编译。

比如,HelloWorld.java 被编译后得到 HelloWorld.class

※ 反编译 Decompile

在.class文件里包含了完全的信息,包含类名、方法、属性、注解,除了注释文字之外的所有信息。所以从.class文件可以恢复得到原来的*.java文件,而且一丝不差!

从 *.class 逆向得到 *.java 的过程,称为反编译。

反编译之后,得到的*.java和原始代码文件几乎完全相同,除了注释文字。所以,当你把*.class或者 *.jar 交到别人手里时候,别人可以很容易的得到原始代码。

具体的反编译效果展示,可以参考《项目应用篇》之“反编译"一章。

* 如何防止别人反编译?

没有办法。就好比一个C程序可以反编译为汇编代码一样,*.class可以反编译得到Java代码。

但是,并不是完全没有办法,在业界普遍采用proguard混淆技术来对抗反编译,具体可以参考《项目应用篇》之“proguard混淆技术"一章。

————————————————

版权声明:本文为CSDN博主「阿发你好」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/iamshaofa/article/details/99684210

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值