-2

问题-以下字符串在字符串池中连接后占用内存的位置,答案是什么,为什么?

public class Test1234 { 
    public static void main(String[] args) { 
         final String s1="jlc"; 
         final String s2="india"; 
         String s3=s1+s2; String s4="jlcindia"; 
         System.out.println(s3==s4); 
   } 
 }
4

1 回答 1

1

它将打印true,因为s1s2是字符串文字并被声明final,因此s3 = s1 + s2被视为常量并在编译时解析。因此,s3ands4将引用字符串池中的相同字符串。

如果您删除了这些final关键字,它将打印false.

于 2013-07-09T14:05:35.610 回答