java为什么反编译出来的文件能够看到源码,c++的反编译出来就是机器语言呢?难道java的cla
java为什么反编译出来的文件能够看到源码,c++的反编译出来就是机器语言呢?难道java的class不是机器语言?...
java为什么反编译出来的文件能够看到源码,c++的反编译出来就是机器语言呢?难道java的class不是机器语言?
展开
展开全部
反编译出来的只是逻辑和源码是一样的,并不是源码,比如,你的源码写个if(!(a>b)) 编译后再用反编译工具反编译出来的可能是if(a<b),java编译后的文件再通过虚拟机解释后 才是机器可以识别的机器语言。不同的系统安装不同的虚拟机实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先, 对于"java为什么反编译出来的文件能够看到源码"这句话, 你确定你看到的是源码??
第二, "c++的反编译出来就是机器语言呢"这句话, 应该是编译出来的是...而不是反编译出来的是...
第三, class不是二进制机器码, 而是字节码文件.
.java 文件被编译成class文件, JVM执行class文件并最终被JVM编译成机器码执行
第二, "c++的反编译出来就是机器语言呢"这句话, 应该是编译出来的是...而不是反编译出来的是...
第三, class不是二进制机器码, 而是字节码文件.
.java 文件被编译成class文件, JVM执行class文件并最终被JVM编译成机器码执行
更多追问追答
追问
1。是的,class文件都可以看见,
2.是c++编译成的exe文件不能反编译
追答
class文件都可以看见.....那不是源码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说对了,class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件,不是机器语言,我记得好像是解释语言。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询