java String类型变量比较问题!!懂得进来下!

来源:百度知道 编辑:UC知道 时间:2024/06/17 15:45:11
String st="相等";
String sr="相等";
判断st==sr返回值为什么是true。

这是java的一种优化
创建String类型的变量有两种方法
String st = "相等"
String st = new String("相等");

第一种方式,会把"相等"这个字符串放在字符缓冲区中,如果有出现一个String sr = "相等",就直接把缓冲区中的地址赋给sr,就会出现
st 与 sr 指向的内存地址相同的。
用第二种方式,就会各自开辟一个内存地址,不会出现上面的问题。

class Example5_1
{
public static void main(String args[])
{
String s1,s2;
s1=new String("We are students");
s2=new String("We are students");
System.out.println(s1.equals(s2));//输出结果是true
System.out.println(s1==s2); //输出结果是false
String s3,s4;
s3="How are you";
s4="How are you";
System.out.println(s3.equals(s4));//输出结果是true
System.out.println(s3==s4); //输出结果是true
}
}
字符串是对象 是引用, 注意new 的作用

因为存在String池?
那玩意叫什么忘记了~~
反正,如果是相同字符的话,MS就是一个对象~

俺不确定~~坐等玉来~~