public static void main(String[] args) {
/**
* Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值小于等于127(-127到127之间)时才可使用对象池,也即对象不负责创建和管理大于127的这些类的对象
* boolean和String支持常量池
* double不支持常量池
* int和常量池没关系,比较的始终是值是否相等
* */
//在值小于127时可以使用常量池
Integer i1=127;
Integer i2=127;
System.out.println(i1==i2);//输出true
//值大于127时,不会从常量池中取对象
Integer i3=128;
Integer i4=128;
System.out.println(i3==i4);//输出false
//Boolean类也实现了常量池技术
Boolean bool1=true;
Boolean bool2=true;
System.out.println(bool1==bool2);//输出true
//String也实现了常量池技术
String s1=new String("hello");
String s2=new String("hello");
System.out.println(s1==s2);//输出false
String s3="hello";
String s4="hello";
System.out.println(s3==s4);//输出true
//浮点类型的包装类没有实现常量池技术
Double d1=1.0;
Double d2=1.0;
System.out.println(d1==d2);//输出false
//int类型貌似和常量池没关系?
int a=127;
int b=127;
System.out.println(a==b);
int c=12899;
int d=12899;
System.out.println(c==d);
/**
* Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值小于等于127(-127到127之间)时才可使用对象池,也即对象不负责创建和管理大于127的这些类的对象
* boolean和String支持常量池
* double不支持常量池
* int和常量池没关系,比较的始终是值是否相等
* */
//在值小于127时可以使用常量池
Integer i1=127;
Integer i2=127;
System.out.println(i1==i2);//输出true
//值大于127时,不会从常量池中取对象
Integer i3=128;
Integer i4=128;
System.out.println(i3==i4);//输出false
//Boolean类也实现了常量池技术
Boolean bool1=true;
Boolean bool2=true;
System.out.println(bool1==bool2);//输出true
//String也实现了常量池技术
String s1=new String("hello");
String s2=new String("hello");
System.out.println(s1==s2);//输出false
String s3="hello";
String s4="hello";
System.out.println(s3==s4);//输出true
//浮点类型的包装类没有实现常量池技术
Double d1=1.0;
Double d2=1.0;
System.out.println(d1==d2);//输出false
//int类型貌似和常量池没关系?
int a=127;
int b=127;
System.out.println(a==b);
int c=12899;
int d=12899;
System.out.println(c==d);
}
参考文章:http://blog.csdn.net/olanlanxiari/article/details/8104505