平时开发代码中做比较的地方,有些时候equals()方法和==用的不太恰当,所以今天抽空研究了一下

首先上测试图

Java中equals与==的使用

①直接定义String类型变量a,b,都赋值为a

②直接定义String类型对象c,d,都赋值为a

比较二者之前是否相等,一开始觉得图中②应该为false,但是执行后发现竟然为true,原因如下图:

Java中equals与==的使用

 

结论:

①判断值是否相等用equals()(除基本数据类型:byte,short,int,long,double,float,char,boolean)

②判断是否为同一对象(内存地址相同)用 ==

 

今日收获:

①String是以字节数组的形式进行存储(char[]);

②String的equals()方法不同于Object的equals()方法,这也是String特有的,String的equals()会先对比内存地址是否相同,若相同直接返回,若不相同,则会继续对比字节数组里的每个字符是否相等,返回最终结果;Object的equals()方法只会对比内存地址是否相同;

Java中equals与==的使用

③记忆性的东西

Java中equals与==的使用

 

注明:文章中的表述如有问题,欢迎大家指教!

文章中文字图片引自博客:https://www.cnblogs.com/ydpvictor/archive/2012/09/09/2677260.html

相关文章:

  • 2022-01-09
  • 2022-01-23
  • 2021-05-22
  • 2021-12-09
  • 2021-07-10
  • 2021-06-18
  • 2022-02-04
猜你喜欢
  • 2022-12-23
  • 2021-10-26
  • 2021-06-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2021-11-21
相关资源
相似解决方案