对于java程序中的字符直接量(即采用字面值方式赋值,型如:String s1 = “aaaa”;),JVM会使用一个字串池StringPool来保存它们。当第一次使用某个字符串直接量时,JVM会将它放入字符串池中进行缓存。
      
       在一般情况下,字符串池中的字符串对象不会被垃圾回收。
      
      当程序再次需要使用该字符串时,无需重新创建一个新的字符串就可以直接让引用变量直接指向字符串中已有的字符串。而使用new操作创建的字符串对象(即型如:String s2 = new String(“aaa”);)不指向字符串池中的对象,但是可以使用intern方法使其指向字符串池中的对象。
     
    
   
    
     
      String a = “ab”;
      
      String b = “a”+”b”;
     
    
   
    
     
      
       
       
      
      
       
        //这里的”a”、”b”不是变量,是常量,当使用“+”拼接字符串时,会产生新的String对象,而不
       
      
     
    
   
 
版权声明:本文为jionjionyoushen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
