黑马程序员:== 去 equals()

时间:2022-07-10 19:10:47

 “==” 比较的是 两个变量的值(即两个引用变量的地址)

  “equals”比较的是 两个对象 的 内容 是否一样

          

例如:

  public class Person

{

     public static void main(String[] args)

{   

       String str1=new String("abc");

       String str2=new String("abc");

       String  str3=str1;

         if(str1==str2)

             System.out.println("true");

        else

               System.out.println("false");          // 结果 false  因为比较的是 两个引用变量的首地址 也就是栈内存的值

  

         if(str1==str3)

             System.out.println("true");

        else

               System.out.println("false");         // 结果 true 因为他们指向的是堆中同一个对象的首地址 他们在栈中的值是一样的

 

         if(str1.equals(str2))

             System.out.println("true");

        else

               System.out.println("false");       //结果  true 因为 equals 比较的是两个对象的内容

 

 

}

 

}