==和equals方法的比较:


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

  1. package bin;  
  2. public class EqualsTest  
  3.         {  
  4.             public static void main(String[] args)  
  5.             {  
  6.                     String s1 = "hello";  
  7.                     String s2 = "hello";  
  8.                     System.out.println("s1和s2是否相等?"+(s1==s2));  
  9.                     System.out.println("s1是否equals s2?"+(s1.equals(s2)));  
  10.                       
  11.                     String ss1 = new String("hello");  
  12.                     String ss2 = new String("hello");  
  13.                     System.out.println("ss1和ss2是否相等?"+(ss1==ss2));  
  14.                     System.out.println("ss1是否equals ss2?"+(ss1.equals(ss2)));  
  15.             }  
  16.         }  
  17.         /*  
  18.             运行结果:s1和s2是否相等?true  
  19.                                 s1是否equals s2? true  
  20.                                 ss1和ss2是否相等?false  
  21.                                 ss1是否equals ss2? true         
  22.         */