String的==和equals()方法的区别

来源:互联网 发布:python 读取远程文件 编辑:程序博客网 时间:2024/05/29 13:19

 

在String中,两个String用==作比较,比较的是字符串的地址,equals比较的是字符串的值。

 

我们用代码来测试

 

两个字符串都用new的方式来创建。结果:

 

从结果可以看出,==比较的是地址,用new关键字创建的两个值同为"abc"的字符串,==返回false,equals()返回true。

但是字符串复制有特殊的字符串常量池操作,如下图:

结果为:

这次测试可以看出,当直接用赋值=给字符串初始化时,如果字符串的值相等,不会在内存中开辟新的地址,而是从String常量池中取出abc。

 

 

 

原创粉丝点击