虽然 Java 语言是典型的面向对象编程语言,但其中的八种基本数据类型并不支持面向对象编程,基本类型的数据不具备“对象”的特性——不携带属性、没有方法可调用。为此,Java为每种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes)。
- 装箱(Boxing):由基本类型向对应的包装类转换,例如:Integer a = 2;
- 拆箱(Unboxing):由包装类向对应的基本类型转换,例如:int v = a.intValue();
闲言少叙,问题如下:
- new Integer(2) == 2 ?
- new Integer(2) == new Integer(2) ?
- Integer.valueOf(2) == Integer.valueOf(2) ?
- Integer.valueOf(1024) == Integer.valueOf(1024) ?
- Integer.valueOf(2).intValue() == 2 ?
- new Integer(2).equals(new Integer(2)) ?
测试代码:
public class BoxingDemo {
public static void main(String[] args) {
System.out.println("new Integer(2) == 2 ?\t" + (new Integer(2) == 2));
System.out.println("new Integer(2) == new Integer(2) ?\t" + (new Integer(2) == new Integer(2)));
System.out.println("Integer.valueOf(2) == Integer.valueOf(2) ?\t" + (Integer.valueOf(2) == Integer.valueOf(2)));
System.out.println("Integer.valueOf(1024) == Integer.valueOf(1024) ?\t"
+ (Integer.valueOf(1024) == Integer.valueOf(1024)));
System.out.println("Integer.valueOf(2).intValue() == 2 ?\t" + (Integer.valueOf(2).intValue() == 2));
System.out.println("new Integer(2).equals(new Integer(2)) ?\t" + (new Integer(2).equals(new Integer(2))));
}
}
运行结果:
怎么样?你做对了吗?欢迎留言~