package constantPool;
public class Pools2 {
public static void main(String[] args) {
//1.常量式创建,对象将被放在栈内存(会被常量化,放进常量池),会进行自动"装箱";
Integer i1 = 10;//装箱
String s1 = "abc";
//2.构造器创建(new创建)对对象将被放在堆内存(不会被常量化)
Integer i2 = new Integer(10);//Integer i2 = Integer.valueOf(10);
String s2 = new String("abc");
//3.基本类和包装类进行比较,包装类自动拆箱
int i3 = 10;
System.out.println(i1==i3&&i2==i3);
//4.包装类之间比较(对象比较),则是比较地址,
System.out.println(i1==i2);//一个在栈里面,一个在堆里面,自然不同
//5.包装类进行运算操作会自动进行拆箱
Integer i4 = new Integer(10);
System.out.println(2*i3==(i2+i4)&&2*i3==(i1+i4));
}
}
结果:
补充:String类的两种:
补充知识来源:Mooc第六章第四节讲的很详细