public class StringExample
{
public static void main (String args[])
{
String s0 = "Programming";
String s1 = "Program";
String s2 = s1 + "ming";
String s3 = "Program" + "ming";
System.out.println("s0 == s2: " + (s0 == s2));
System.out.println("s0 == s3: " + (s0 == s3));
}
}
输出结果:
s0 == s2: false
s0 == s3: trueWHY???
{
public static void main (String args[])
{
String s0 = "Programming";
String s1 = "Program";
String s2 = s1 + "ming";
String s3 = "Program" + "ming";
System.out.println("s0 == s2: " + (s0 == s2));
System.out.println("s0 == s3: " + (s0 == s3));
}
}
输出结果:
s0 == s2: false
s0 == s3: trueWHY???
{
public static void main (String args[])
{
String s0 = "Programming";
String s1 = "Program";
String s2 = s1 + "ming";
String s3 = "Program" + "ming";
System.out.println("s0 == s2: " + (s0.equals(s2)));
System.out.println("s0 == s3: " + (s0.equals(s3)));
}
}
你現在在看看結果是什麽
equals是值的比较,当然都相等了。
在比较地址上出现这个问题的原因是??
count= 11
hash= 0
offset= 0
value= char[11] (标识=20)
[0]= P
[1]= r
[2]= o
[3]= g
[4]= r
[5]= a
[6]= m
[7]= m
[8]= i
[9]= n
[10]= g
[0]= P
[1]= r
count= 11
"s3"= "Programming"
count= 11
hash= 0
offset= 0
value= char[11] (标识=20)
[0]= P
[1]= r
[2]= o
[3]= g
[4]= r
[5]= a
[6]= m
[7]= m
[8]= i
[9]= n
[10]= g
hash= 0
"s2"= "Programming"
count= 11
hash= 0
offset= 0
value= char[23] (标识=17)
[0]= P
[1]= r
[2]= o
[3]= g
[4]= r
[5]= a
[6]= m
[7]= m
[8]= i
[9]= n
[10]= g
[11]=
[12]=
[13]=
[14]=
[15]=
[16]=
[17]=
[18]=
[19]=
[20]=
[21]=
[22]=
[23]=雖然已經結貼,但是,我還是把這個發出來看看,這是eclipse 調試的顯示,不知道能説明什麽