equals和==的区别

equals和==的区别

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/fgy11/p/12832992.html