== 与 equals 的区别

Posted 一个写代码的测试经理 - 小昊子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了== 与 equals 的区别相关的知识,希望对你有一定的参考价值。

今天跟开发修复一个bug,现在列出来这个绕口的比较

场景一:

Long a = 1;

Long b = 1;

boolean result = (a == b); //此时result的值为false

boolean result2 = (a.equals(b)); //此时result2的值为true

boolean result3 = (a.longValue()== b.longValue()); //此时result3的值为true

场景二:

long c = 2;

long d = 2;

boolean result = (c == d); //此时result的值为true

boolean result2 = (c.equals(d)); //此时的result2的值为true

 

 

引申一下String和StringBuilder

String占用栈空间,每次赋值都会开辟一个新的空间;StringBuilder是对象,在堆里面一直占用同一个空间。

 

以上是关于== 与 equals 的区别的主要内容,如果未能解决你的问题,请参考以下文章

java的equals与==的区别

“equals”与“==”的区别-如何重写equals()和hashCode()方法

equals与==的区别

equals与==的区别

“==”与equals的区别

equals与==之间的区别