java的自动装箱和拆箱是什么样子的?
Integer a = 100;
等价于
Integer a = Integer.valueOf(100);
同事如果只在-128到127之前的话,则会从缓存池里去取值,不会去new对象, 不管对于其他基本类型的装箱类也都是这样。
public class DataType {
public static void main(String args[]) {
DataType dt = new DataType();
dt.m31();
dt.m32();
}
public void m31() {
Integer a = 100;
Integer b = 100;
System.out.println("m31 result " + (a == b));
}
public void m32() {
Integer a = 128;
Integer b = 128;
System.out.println("m32 result " + (a == b));
}
}
打印结果
m31 result true
m32 result false
Integer a = 100;
等价于
Integer a = Integer.valueOf(100);
同事如果只在-128到127之前的话,则会从缓存池里去取值,不会去new对象, 不管对于其他基本类型的装箱类也都是这样。
public class DataType {
public static void main(String args[]) {
DataType dt = new DataType();
dt.m31();
dt.m32();
}
public void m31() {
Integer a = 100;
Integer b = 100;
System.out.println("m31 result " + (a == b));
}
public void m32() {
Integer a = 128;
Integer b = 128;
System.out.println("m32 result " + (a == b));
}
}
打印结果
m31 result true
m32 result false