| 本帖最后由 翁游龙 于 2012-7-4 16:04 编辑 
 第一次见到这样奇怪的问题,以下有两个类StringJoinTest和StringJoinTest02,
 程序如下:
 
 
 类StringJoinTest:
 
 
 public class StringJoinTest{
 public static void main(String[] args){
 String s1 = "HeimaJava";
 String s2 = "Heima" + "Java";
 System.out.println(s1 == s2); //true
 
 
 //定义两个字符串
 String str1 = "Heima";
 String str2 = "Java";
 //将str1和str2进行连接运算
 String s3 = str1 + str2;
 System.out.println(s1 == s3);  //false
 }
 }
 
 
 类StringJoinTest02:
 
 
 public class StringJoinTest02{
 public static void main(String[] args){
 String s1 = "HeimaJava";
 String s2 = "Heima" + "Java";
 System.out.println(s1 == s2); //true
 
 
 //定义两个字符串
 final String str1 = "Heima";
 final String str2 = "Java";
 //将str1和str2进行连接运算
 String s3 = str1 + str2;
 System.out.println(s1 == s3);  //true
 }
 }
 
 
 问题:两个类中同样是比较s1和s3的地址池,为什么使用了final修饰后的字符串
 判断打印的是结果为true呢?
 
 
 
 |