-1
有人可以解釋我如何在java中的內存管理中的String類行爲。 我最近聽說過字符串比較。兩個字符串如何與==運算符和equals方法不同。爲什麼「==」在使用「新字符串(..)」時工作不同?
例如: String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello");
任何建議,案例1和情形3?
有人可以解釋我如何在java中的內存管理中的String類行爲。 我最近聽說過字符串比較。兩個字符串如何與==運算符和equals方法不同。爲什麼「==」在使用「新字符串(..)」時工作不同?
例如: String str1 = "Hello"; String str2 = "Hello"; String str3 = new String("Hello");
任何建議,案例1和情形3?
==
在Java中比較了2個字符串對象的引用,而不是內容。 equals
方法確實是檢查內容的方法。
但是,由於到期的字符串interning,我認爲,在您列出的情況下,str1 == str2
withh爲true,因爲該字符串文字存儲在內存中的單個實例。
**有什麼建議**? 。是的,總是使用'.equals()'。 – TheLostMind 2014-09-19 05:57:35
(但請務必遵守相關的選票!) – user2864740 2014-09-19 05:58:52
@ user2864740是的,它是 – 2014-09-19 05:59:16