在讲使用==和equals()比较字符串之前,我们首先要讲定义字符串的两种常见方式,一种是定义一个常量,即直接定义字符串,一种是通过new关键字定义一个变量,即使用String类定义字符串,如下图;
![]()
用第一种方式定义一个字符串时,jvm就会在常量池中找有没有相同的字符串,有就返回一个该字符串的地址,如果没有就在常量池中生成该字符串。用第二种方式是生成一个字符串对象,该对象存放在堆内存中,当用第二种方法生成多个相同字符串的对象时,便会在堆中生成多个字符串对象。
讲清楚了定义字符串的两种常见方式,我们再来谈谈使用==和equals()比较字符串:
String中==比较引用地址是否相同,equals()比较字符串的内容是否相同。
举个例子理解一下:

版权声明:本文为senxu_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。