更多 Java 基础知识方面的文章,请参见文集《Java 基础知识》
Integer.class VS int.class
相同点:都会得到 Class<Integer>
不同点:
-
Integer
是 Object Type 对象类型,int
是 Primitive Type 原始类型 -
Integer
有成员变量,有成员方法,int
无成员变量,无成员方法 -
Integer
:a reference to an int primitive -
int
:a literal numerical value
示例:
public static void main(String[] args) {
Integer i1 = 123;
int i2 = 123;
Class<Integer> c1 = Integer.class;
Class<Integer> c2 = int.class;
// False
System.out.println(c1 == c2);
// False
System.out.println(c1.isPrimitive());
// True
System.out.println(c2.isPrimitive());
}
Integer.TYPE
得到 Class<Integer>
:The class instance representing the primitive type int。
因此:
-
Integer.class
与int.class
不同 -
Integer.TYPE
与int.class
相同
示例:
public static void main(String[] args) {
Integer i1 = 123;
int i2 = 123;
Class<Integer> c1 = Integer.TYPE;
Class<Integer> c2 = int.class;
// True
System.out.println(c1 == c2);
// True
System.out.println(c1.isPrimitive());
// True
System.out.println(c2.isPrimitive());
}