java equal与==区别

1.操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同
2.equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同
总结:简单的来说,比较的是2个对象的地址,而equals比较的是2个对象的内容
例子:
String s1 = “Monday”;

String s2 = “Monday”;

s1==s1 //true,因为s1,s2的值均存放在常量池中,s1,s1在栈中存放常量池中位置相同

String s1 = “Monday”;

String s2 = new String(“Monday”);

s1==s2; //false

s1.equals(s2); //true

猜你喜欢

转载自blog.csdn.net/m0_43432638/article/details/83411543