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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李挺 中级黑马   /  2013-2-26 16:52  /  2329 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在张老师的视频中有这么一个讲解
Integer.TYPE==int.class //是true

我查了下API:Type 是 Java 编程语言中所有类型的公共高级接口。它们包括原始类型、参数化类型、数组类型、类型变量和基本类型。
就是说Type和Object是对应的,一个是所有类的父类,一个是所有接口的父接口
可是Integer.TYPE==int.class 怎么理解呢

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

6 个回复

倒序浏览
TYPE这个常量字段代表这个包装类型所白装类型的字节码。
Integer锁包装的是 int类型
通过Integer.TYPE获取int类型的字节码
int.class也是获取int类型的字节码
Integer.TYPE==int.class 两者都是同一份字节码,所以true

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
先看int.class
必须知道class
各个java类,它们是否属于同一类,是不是可以用一个类来描述这类事物呢?这个类的名字就是Class。
java程序中的各个java类属于同一类事物,描述这类事物的java类名就是Class。

每个类型都有一个表示自己类型的Class对象,你可以去看API中对于java.lang.Class<T>类的描述
Class对象不需要用equals来判断相等,因为同一个类型的Class对象全局只有一个
所以int.class取到了int类型的一个对象。

再看Integer.TYPE,api上面写了

TYPE
public static final Class<Integer> TYPE表示基本类型 int 的 Class 实例。

从以下版本开始:
JDK1.1

所以两个都是int的对象呗一样了撒

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1

查看全部评分

回复 使用道具 举报
黄鸿达 发表于 2013-2-26 17:02
TYPE这个常量字段代表这个包装类型所白装类型的字节码。
Integer锁包装的是 int类型
通过Integer.TYPE获取i ...

TYPE 是常量?
回复 使用道具 举报
李挺 发表于 2013-2-26 20:15
TYPE 是常量?

是的,张老师视频是这么讲
回复 使用道具 举报
TYPE是类类型常量,Integer.TYPE表示基本类型 int 的 Class 实例。而int.class同样表示int的Class实例。二者相同。
回复 使用道具 举报
你好,都是在获取int的class实例对象,所以结果为true
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马