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

本文探讨了如何在Java中使用==和equals()比较字符串,介绍了常量池与堆内存的区别,并通过实例解析两者在字符串对象比较中的作用。
3148

被折叠的 条评论
为什么被折叠?



