==和equals方法的比较:
java程序中测试两个变量是否相等有两种方式:==和equals()方法。
当使用==来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true.
但对于两个引用类型变量,他们必须指向同一个对象时,==判断才会返回true,==不可用于比较类型上没有父子关系的两个对象。
String 已经重写了Object的equal()方法,String的equals()方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equals比较就返回true,反之返回false。
注:Object默认提供的equals()只是比较对象的地址,即Object类的equals()方法比较的结果与==运算符比较的结果完全相同。(在实际中往往要求重写equals()方法)。
- package bin;
- public class EqualsTest
- {
- public static void main(String[] args)
- {
- String s1 = "hello";
- String s2 = "hello";
- System.out.println("s1和s2是否相等?"+(s1==s2));
- System.out.println("s1是否equals s2?"+(s1.equals(s2)));
- String ss1 = new String("hello");
- String ss2 = new String("hello");
- System.out.println("ss1和ss2是否相等?"+(ss1==ss2));
- System.out.println("ss1是否equals ss2?"+(ss1.equals(ss2)));
- }
- }
- /*
- 运行结果:s1和s2是否相等?true
- s1是否equals s2? true
- ss1和ss2是否相等?false
- ss1是否equals ss2? true
- */