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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈国斌 中级黑马   /  2013-5-2 22:05  /  1853 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈国斌 于 2013-5-5 09:00 编辑

张孝祥老师java高新技术第一部分第17个视频里有这样一行代码:System.out.println(int.class == Integer.class);
我有点搞不明白,
得到各个字节码对应的实例对象的做法有:
类名.class,例如:System.class
对象.getClass(),例如:new Date().getClass()
Class.forName(“类名”);例如:Class.forName(“java.util.Date”);
而int是一个基本数据类型,为什么还能这样写?
谢谢!

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

7 个回复

倒序浏览
尹桥印 发表于 2013-5-2 22:13
还是很有深度的问题。真的很有深度

哥们休要取笑,我学晕了
回复 使用道具 举报
尹桥印 发表于 2013-5-2 23:08
绝无半点取笑之意的。真的

玩笑话,哥们当真了
回复 使用道具 举报
建议楼主看看Class的API,上面说是把这个八种基本数据类型和void类型也表示为Class的对象,其实.class是作为字节码存在的,而Class类是用于描述字节码对象的一类事物。在程序中你用到了int等基本数据类型,就是存在了内存中,那么就存在了对应的字节码对象。并不是只有类才具备字节码的,只要加载进内存的,都会对应一份唯一的字节码对象。所以用.class表示在内存中的字节码对象,你只要加载了这份字节码,你才能使用,因为什么都不能凭空出现的。
也就是说用.class是作为字节码的一种表示方式。楼主不用太过纠结这种写法。你理解它是一个字节码对象就可以了。
以上是我的个人愚见,不一定对,只是提供一种思路。
回复 使用道具 举报
黄玉昆 发表于 2013-5-3 22:31
建议楼主看看Class的API,上面说是把这个八种基本数据类型和void类型也表示为Class的对象,其实.class是作 ...

多谢版主了!
回复 使用道具 举报
如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马