java中equals和==的区别是什么


java中equals和==的区别是什么


刚开始学习Java中字符串的比较时,可能会对==和equals比较迷茫,今天我就通过一个小例子来简单说明一下equals和==的区别 。
操作方法
  • 01首先,定义两个String类变量a和b,然后,把字符串“mimi”赋值给变量a和b 。我们给a赋值的时候就会在内存分配一个地址存放“mimi” 。而再次给b赋值的时候,因为内存中已经存在了“mimi”,所以a和b指向的是同一个地址 。而使用new来创建对象“mimi”,就会重新在内存中分配一个地址 。也就是说a和b指向的地址一样,a和c指向的地址不一样 。
  • 02接着我们使用输出方法来判断一下他们之间的真假 。
  • 03点击工具栏中的运行按钮运行Java程序 。
  • 04如图,运行之后,控制台就会出现结果 。
  • 05【java中equals和==的区别是什么】为了更直观,我把结果放到旁边,方便进行讲解 。a==b结果为true(真),而a==c,b==c结果都为false(假),之前说过,a和b地址一样,可见对于比较字符串时,==比较的是地址 。而a.equals(b)和a.equals(c)结果都是true,所以比较字符串时,equals比较的是字符串内容而不是地址 。

    推荐阅读