关于字符串对象的引用

来源:互联网 发布:师洋的淘宝店地址 编辑:程序博客网 时间:2024/05/21 06:58

1、当定义一个字符串用用

String s1 = "abc";

String s2 = "abc";

System.out.println(s1==s2) ;

返回结果是ture;

原因分析:当程序加载类的时候,会在常量存储区,为"abc"分配一块区域,然后引用s1和s2分别都指向该改地址,因此返回true。

2、

String s1 = "a"+“b”;

String s2 = "a"+"b";

System.out.println(s1==s2) ;

true

3、

String s1 = "a";

String s2 = "b";

System.out.println(s1+s2 == “a”+"b") ;

返回false

因为s1+s2会在堆上产生一个新的字符string对象,"a"+"b"仍然是在静态存储区分配一块地址。