class文件为什么不是二进制,为什么可读?

博客探讨了.class文件相关问题。指出.class文件是二进制文件,供机器读取,用不同工具打开显示不同,开发工具会反编译使其看似正常代码。还解释了引用jar包中类时用CTRL+SHIFT+R找不到的原因,以及可在web app libraries下找.class文件,反编译后能看源码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

都说程序最终会被编译成class二进制文件,供计算机读取。

但是为什么有时候我们看到的.class文件和java文件没区别呢?class文件难道不是二进制文件?

要是用一般的文本工具打开.class文件的话确实会是一堆乱码,而用开发工具打开.class的话,开发工具会给你反编译一遍,所以看起来就是正常代码了,用不同的工具打开class文件,显示的也不一样。class文件是二进制文件,是供机器读的,但我们看时,用不同的编辑器打开,看到的也是不一样的。class文件反编译后也可以是正常代码。

当我们要引用别人封装好打包过来的jar包里的类时,我们用CTRL+SHIFT+R是找不到的,这是为什么呢?

所谓的依赖包(比如说jar包),也不过就是另外一个人写的java程序,然后打包给我们用而已,里面当然也是java编译后的.class文件。就比如你这个程序要是打包了,别人用起来也就是依赖包了。

类找不到原因是因为CTRL+SHIFT+R只会找源文件里面是否有该类,没有的话是找不到的。找不到,系统又用到了该类的话,该类就有可能是引用已封装好的类,该类有可能配置在lib下的jar包里,在项目加载时才会启动,故找不到。但是可以在 web app libraries 下找到.class文件,若.class被反编译过了,就可以看源码了。

class文件为什么不是二进制,为什么可读?

因为class文件用开发工具打开是被反编译过的。

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值