面试题:
//有如下4条语句:
Integer i01 = 59;
int i02 = 59;
Integer i03 =Integer.valueOf(59);
Integer i04 = new Integer(59);
以下输出结果为false的是:
A. System.out.println(i01== i02);
B. System.out.println(i01== i03);
C. System.out.println(i03== i04);
D. System.out.println(i02== i04);
首先可以看到这有两个数据类型, int和Integer
int为基本类型
Integer为对象类型,它的声明是这样的
public final class Integer extends Number implements Comparable<Integer>{...}
//1.Integer类是final的, 不能被继承
//2.Integer类实现了Comparable接口, 所以可以用compareTo进行比较
//3.Integer继承了Number类, 所以该类可以调用longValue, floatValue, doubleValue等系列方法返回对应的类型的值
题目中声明了三个Integer变量, i01, i03, i04 这三种方式有什么区别呢
-
Integer i04 = new Integer(59);
new Integer(59)这个操作是 调用了构造函数, 将59这个值, 赋给了Integer的局部变量value
-
Integer i