随笔-9  评论-0  文章-0  trackbacks-0
代码如下:
public class StringTest    
{   
    
static final String s1 = "H";   
    
static final String s2 = "ello";   
    
static final String s3 = "Hello";   
       
    
static String ss1 = "H";   
    
static String ss2 = "ello";   
    
static String ss3 = "Hello";   
       
    
static final String s11;   
    
static final String s22;   
       
    
static  
    
{   
        s11 
= "H";   
        s22 
= "ello";   
    }
   
       
    
public static void main(String[] args)   
    
{   
        
//1   
        String str1 = "H";   
        String str2 
= "ello";   
        String str3 
= "Hello";   
        String str4 
= str1 + str2;   
        String str5 
= "H" + "ello";   
           
        System.out.println(str4 
== str3);   
        System.out.println(str5 
== str3);   
           
        
//2   
        String s4 = s1 + s2;   
           
        System.out.println(s4 
== s3);   
        System.out.println(s4 
== str3);   
           
        
//3   
        String ss4 = ss1 + ss2;   
        System.out.println(ss4 
== s3);   
        System.out.println(ss4 
== ss3);   
        System.out.println(ss4 
== str3);   
           
        
//4   
        String s33 = s11 + s22;   
        System.out.println(s33 
== s3);   
        System.out.println(s33 
== ss3);   
        System.out.println(s33 
== str3);   
    }
   
}
  

输出结果:
 1false  
 2true  
 3true  
 4true  
 5false  
 6false  
 7false  
 8false  
 9false  
10false 

static final String的定义使其成为编译时常量,所以String s4 = s1 + s2;  实际是String s4 = “H” + “ello”,也就是“Hello”,3,4输出为true。而s11,s22虽然是static final的,但是是在static块中初始化,编译时不会成为常量。
posted on 2009-11-14 13:28 AndyFish 阅读(89) 评论(0)  编辑  收藏 所属分类: 基础知识

只有注册用户登录后才能发表评论。


网站导航: