新人现时没有可用分,以后给class a{
private X abc=null;
...
// I call m(abc) in main
private void m(X a){
// a==abc is true
a = new Y();
// a==abc is false, why a==abc equals false? I am confused.Pleae help
}}
private X abc=null;
...
// I call m(abc) in main
private void m(X a){
// a==abc is true
a = new Y();
// a==abc is false, why a==abc equals false? I am confused.Pleae help
}}
class a{
private X abc=null;
...
// I call m(abc) in main
private void m(X a){
System.out.println(a==abc);// a==abc is true,这里a==abc是true
a = new Y();
System.out.println(a==abc);// a==abc is false,为什么这里a==abc是false?
}}
private static String a;
private static String d;
public static void main(String[] args)
{
a=new String("hi");
d=new String("hi");
System.out.println(a==d);
System.out.println(a.equals(d));
}
}
好好比较比较“==”和“equals”,前者比较不是对象内容是比较存放数据的地址,后者才是比较对象内容