对string中的=,因为java和c++不同的关系,总是有点混乱
java
public static void main(String[] args)
{
String s1 = "aaabb";
String s2 = s1;
if ( s1 == s2 )
System.out.println("SAME");
else
System.out.println("Diff");
String s3 = s1;
//不能被修改,属于不可变对象
}
c++
int main() {
string s1 = "aaabb";
string s2 = s1;
if ( s1 == s2 )
cout<<"SAME"<<endl;
else
cout<<"Different"<<endl;
string s3 = s1;
s3[3] = 'c';
cout<<"s1:"<<s1<<endl;
cout<<"s3:"<<s3<<endl;
return 0;
}
后来我发现,c++的赋值其实是就是一个copy函数,赋值后的字符串==会相等。是因为c++字符串比较时,比较的是字母顺序。
然后修改另一个引用时不会影响到前一个
而java根本不支持修改字符串,可能这就是傲娇的不可变字符吧