==操作符和equals方法
==操作符:
1.基本类型比较值:只要俩个变量的值相等,则为true
2.引用类型比较引用(是否指的是同一个对象),是同一对象,==才返回true
例:
Person p1=new Person();
Person p2=new Person();
System.out.println(p1==p2);
结果为false
Person p1=new Person();
Person p2=p1;
System.out.println(p1==p2);
结果为true
注意: 用“==”进行比较时,符号俩边数据类型要兼容(可自动转换类型的除外)。 否则,编译出错。
Person p1=new Person();
Test t=new Test();
System.out.println(p1==t);//编译报错
equals
equal():所有类的继承object,可获得equal()方法,还可以重写。
只能***做比较引用类型***:作用和“==”相同,比较是否指向同一个对象。
Person p1=new Person();
Person p2=new Person();
//System.out.println(p1==p2);
System.out.println(p1.equals(p2));
结果都为false
特例:对特殊的File,String,Date及包装类(Wrapper Class)来说,是比较类型和内容,而不考虑是否为同一对象
String p1=new String("abc");
String p2=new String("abc");
System.out.println(p1==p2);//false
System.out.println(p1.equals(p2));//比较的内容,true
结论:
==是比较对象的内存地址;
equals,对于String是比较内容值的。
string对象的创建: