public class TestString { public static void main(String[] args) {
String a = "123";
String b = "123";
boolean con = false;
boolean con2 = false;
if(a == b)
{
con = true;
}
if(a.equals(b))
{
con2 = true;
}
System.out.println(con+"\n"+con2);
}}为什么两个都是true;能不能帮我解释一下 == 和equals之间的区别;谢谢了
楼主【kiver149】截止到2008-07-30 17:20:33的历史汇总数据(不包括此帖):
发帖的总数量:11 发帖的总分数:320 每贴平均分数:29
回帖的总数量:16 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:11 结贴的总分数:320
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:100.00% 结分的百分比:100.00%
无满意结贴率:0.00 % 无满意结分率:0.00 %
敬礼!
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=kiver149
因为String是不允许修改的,所以既然大家内容一样,则无需重复消耗内存。但
"1"+"23" 实际是3个,"1" 和 "23" , 以及连接之后的"123" 这个"123"和那个直接用的"123"地址不同,但equals是true
public static void main (String args[]){
String str1 = new String ("abc");
String str = "abc";
if (str == str1){
System.out.println("true");
}
else{
System.out.println("false");
}
}
}
这个就是flase了... 解释楼上兄弟们都说了...
这样就生成了两个对象。
而且我刚才试了下 String a = "1"+"23";String b = "123";
a == b为true。。这是什么原因