常量池
常量池就是方法区内的一个内存空间,里面的是常量。系统新建变量时,先从常量池中搜索是否存在这样的常量,如果没有就新建,有的话就将引用指向该常量。
8大基本数据类型和对应的封装类,以及String 都可以成为常量池的数据。只有在编译期间确定具体值的数据才能成为常量池的数据,也就是所有new出来的数据都不是常量池的数据。
8大基础数据类型对应的封装类和 String类都是不可变类。
//true
int a1 = 6;
int a2 = 6;
//true
Integer b1 =3;
Integer b2 =3;
//true
String c1 ="abc";
String c2 = "abc";
//false
String d1 = new String("cd");
String d2 = new String("cd");
//false
Integer e1 = new Integer(8);
Integer e2 = new Integer(8);