答案很长所以我给你一个简短的
你打电话给intern()
方法上..这种方法引用内部池的String
物品。如果你调用的字符串intern()
上已驻留在池中然后是对此的引用。String
分配给str
..如果没有那么新的String
被放置在池中,然后将对它的引用分配给str
.
当您通过以下操作检查对象标识时==
(您实际上是在问:这两个引用是否指向同一个对象)true
.
在这种情況下,str
和str2
指的是不同的Objects
两者都没有实习生,所以当你测试Object
身份使用==
你会得到false
.
在良好的编码实践方面:不使用==
若要检查字符串相等性,請使用.equals()
相反