java的常量池

来源:互联网 发布:手机数据分区损坏修复 编辑:程序博客网 时间:2024/05/20 03:06
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);

}

参考文章:http://blog.csdn.net/olanlanxiari/article/details/8104505

1 0
原创粉丝点击