1、整数类型和对应包装类的比较:
这里会做一个自动的装箱(基本数据类型自动转换为对应的包装类型)
示例代码如下:
Integer a = 100;
Integer b = 100;
System.out.println(a == b);
Integer c = 129;
Integer d = 129;
System.out.println(c == d);
但是在数值位于 -128~127之间的数值在创建包装类时会直接取对应已存在的包装类对象,不会重复创建对象
因此上面代码运行结果如下:
true
false
2、double类型以及对应其包装类Double的比较
这里的Double类型的包装类不会像Integer那样有缓存对应的机制,即每次都会创建新的包装类对象
示例代码如下:
Double a = 100.00;
Double b = 100.00;
System.out.println(a == b);
Double c = 200.00;
Double d = 200.00;
System.out.println(c == d);
上面代码运行结果如下:
false
false
3、关于自动装箱创建的引用对象和new的方式创建出来的引用对象的对比
这里两者创建的显然不是同一个对象
示例代码如下:
Integer e = new Integer(1);
Integer f = 1;
System.out.println(e == f);
上面代码运行结果如下:
false