Java 字符串比较==与equals()区别

来源:互联网 发布:淘宝换货单子怎么写 编辑:程序博客网 时间:2024/05/17 02:05

==:它是比较两个字符串的地址是否相同


equals():它是比较两个字符串的内容是否相同,这只是针对于String类而言


示例代码如下:

String com1 = new String("asd");String com2 = new String("asd");if(com1==com2){System.out.println("com1=====com2");}if(com1.equals(com2)){System.out.println("com1 equals com2");}String cmp1 = "asd";String cmp2 = "asd";if(cmp1==cmp2){System.out.println("cmp1=====cmp2");}if(cmp1.equals(cmp2)){System.out.println("cmp1 equals cmp2");}

输出结果如下:

com1 equals com2cmp1=====cmp2cmp1 equals cmp2


new出来的都是分配新的内存空间,其地址不会相同

直接引用相同的字符串,其地址也会相同。


-----------------------------------------------------------

当自定义的类相比较时,需要自己去实现equals()方法。而Object类的equals()方法默认是对地址进行比较的。

如:

MyString com1 = new MyString("asd");MyString com2 = new MyString("asd");if(com1.equals(com2)){System.out.println("com1 equals com2");}else{<pre name="code" class="java">                        System.out.println("com1 is not equals com2");
}






0 0
原创粉丝点击