java中equals和“==”补充

Posted XuGuobao

tags:

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

在JDK1.5之后,Integer添加了自动装箱,其形式为Integer i = 5;

装箱过程在内存中是  i = new Integer(4);大家都很熟悉这个吧。

当使用这中形式的时候,equals的用法不变,但是“==”略有不同

看下边的例子:

(1)

Integer x = 12;
Integer y = 12;
System.out.println(x==y);    //true
System.out.println(x.equals(y)); //true

(2)

Integer x = 127;
Integer y = 127;
System.out.println(x==y);    //true
System.out.println(x.equals(y));  //true

结果和(1)相同

(3)

Integer x = 128;
Integer y = 128;
System.out.println(x==y);    //false
System.out.println(x.equals(y)); //true

(4)

Integer x = 129;
Integer y = 129;
System.out.println(x==y);    //false
System.out.println(x.equals(y));  //true

结果和(3)相同

总结:看到equals的用法和在上一篇博文中叙述的相同

但是“==”的用法变了,这是因为,自动装箱,如果装箱的是一个字节方位内的数据(注意上边的127),那么这个数据会被共享,不会开辟新的空间,

所以两个new的地址相同。













以上是关于java中equals和“==”补充的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中Object类中的equals方法补充

补充==的使用和equals的区别

ACM的探索之Everything is Generated In Equal Probability! 后序补充丫!

20集合(Set接口补充)

20集合(Set接口补充)

python 学习 “笨办法学python”(随书补充)