Java 为什么使用“新字符串(…)”时“==”的工作方式不同?

Java 为什么使用“新字符串(…)”时“==”的工作方式不同?,java,string,Java,String,有人能解释一下String类在java内存管理中的行为吗。 我最近听说过字符串比较。两个带==运算符和等于方法的字符串有何不同 例如: 字符串str1=Hello; 字符串str2=Hello; String str3=新StringHello; 对案例1和案例3有什么建议吗?==在Java中比较两个字符串对象的引用,而不是内容。equals方法用于检查内容 但是,由于字符串的内部处理,我相信在您列出的情况下,str1==str2 with h应该是真的,因为内存中只存储了该字符串文本的一个实

有人能解释一下String类在java内存管理中的行为吗。 我最近听说过字符串比较。两个带==运算符和等于方法的字符串有何不同

例如: 字符串str1=Hello; 字符串str2=Hello; String str3=新StringHello;

对案例1和案例3有什么建议吗?

==在Java中比较两个字符串对象的引用,而不是内容。equals方法用于检查内容


但是,由于字符串的内部处理,我相信在您列出的情况下,str1==str2 with h应该是真的,因为内存中只存储了该字符串文本的一个实例。

有什么建议吗。是的,总是使用。相等。但一定要跟上相关的接近票数@用户2864740是的,感谢相关回复。