A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 程金 中级黑马   /  2012-9-18 18:03  /  1572 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 程金 于 2012-9-20 15:42 编辑

张孝祥老师泛型的视频,高新技术34级中,里面有强调说class没load到内存之前不是字节码,类加载完了,会对class文件进行安全检查等处理,之后才是字节码,源文件编译后的class怎么会不是字节码,张老师老师说getclass()方法得到的是字节码,这跟硬盘上的class文件有什么区别?

3 个回复

倒序浏览
zhaosenyang 来自手机 黑马粉丝团 2012-9-18 22:00:43
沙发
我是这么理解的,硬盘上的.class文件只是物理存在的一个文件,并不能从这个文件中得到什么信息。只有将这个文件加载到内存中,此时在内存中是以二进制数据的形式存在,这个时候才能称之为字节码文件,也只有这个时候,才是成Class类的实例对象,然后通过Class类的方法得到想要的信息。不加载,他只是一个Windows文件,在内存中,才会有数据交互。
回复 使用道具 举报
硬盘上的东西都是死的 硬盘只是个储存室 只有加载到内存中 内存才会分析它是个什么
好比你有个藏剑阁里面藏了很多稀世宝剑,但是宝剑在藏剑阁里只是一块死物 没有人拿出来用的话不会知道这个个什么东西干什么用的 只有操作宝剑的人用它 它才被识别为宝剑并知道如何使用 。。
所以可以这么说 宝剑虽然早存在在藏剑阁中 但是没人用的话你说他是烂铁都行。。
我是这么理解的
回复 使用道具 举报
本帖最后由 程金 于 2012-9-19 10:31 编辑

有的说class文件就是字节码,有的说不止是字节码,晕了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马