这就涉及到传值和传引用的问题了。 对于String类型来说 用==比较的是两个字符串所指向的地址,因为这两个变量不是指向同一个地址,所以他们两个==当然是false了,而equals是比较两个变量的值,两个变量的值都是java字符串 当然是一样的了
这个就是值传递和引用传递的问题了,==比较的栈值,即s1!=s2,equals比较的是堆里的值,都是java,所以是true
“==”比较的是地址是否相同。比如,int a=0; int b=a;这样并未给b一个新的地址,而是让它指向a的地址。也就是a和b相当于指向同一个地址的指针。这样a==b是对的。
但equals比较的是内容是否相同。比如int a=0;int b=0;他会检查a和b里的东西是否相同。这里都是0,因此相同。
equals比的是引用的值,所以想等,=是比引用的地址
java中对于数字的对比用 == 但是对于字符串当然是equals,你上面的代码,是字符串赋值!