equals和==的区别

equals和==的区别

首先对于基本数据类型和引用数据类型==的作用效果是不同的:

基本数据类型比较的是值是否相同,引用数据类型比较的是引用是否相同。

 

因为x和y指向的是同一个引用,所以==也是true,而new String方法重写开辟了内存空间,所以==结果为false,而equals比较的一直是值,所以结果都是ture。

 

 

 

 

 

 

 

 

 

首先来看一下默认情况下equals比较一个有相同值的对象输出结果为false,

 

 

 但是在String方法下就输出为true原因在源码中可见:

 

 

 原因就是String重写了Object的equals方法,把引用比较改成了值比较。

 

posted @ 2020-05-05 21:39  fgy121  阅读(227)  评论(0编辑  收藏  举报