2014-09-19 55 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,因爲該字符串文字存儲在內存中的單個實例。

相關問題