String类型

String类型
代码如下:
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);   
    }
   
}
  

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

static final String的定义使其成为编译时常量,所以String s4 = s1 + s2;  实际是String s4 = “H” + “ello”,也就是“Hello”,3,4输出为true。而s11,s22虽然是static final的,但是是在static块中初始化,编译时不会成为常量。

你可能感兴趣的:(String类型)