2014-09-19 56 views
-1

有人可以解释我如何在java中的内存管理中的String类行为。 我最近听说过字符串比较。两个字符串如何与==运算符和equals方法不同。为什么“==”在使用“新字符串(..)”时工作不同?

例如: String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello");

任何建议,案例1和情形3?

+1

**有什么建议**? 。是的,总是使用'.equals()'。 – TheLostMind 2014-09-19 05:57:35

+2

(但请务必遵守相关的选票!) – user2864740 2014-09-19 05:58:52

+0

@ user2864740是的,它是 – 2014-09-19 05:59:16

回答

3

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

但是,由于到期的字符串interning,我认为,在您列出的情况下,str1 == str2 withh为true,因为该字符串文字存储在内存中的单个实例。

相关问题