在String源中,只有在方法public int hashCode()被调用至少一次时,才会设置哈希码值(private int hashCode).这意味着一个不同的状态.但是hashCode是否会在以下示例中设置:
String s = "ABC"; ?
Run Code Online (Sandbox Code Playgroud)
将
String s = "ABC";
s.hashCode();
Run Code Online (Sandbox Code Playgroud)
有助于后续的比较表现?
Rob*_*vey 12
不可变性意味着,从外部角度来看,对象的价值不能改变.
如果hashCode正在缓存,则在第一次hashCode调用后对象的内部状态可能不同.但是该调用是只读的,并且您无法更改对象的值,因为它看起来像是外部世界.
换句话说,它仍然是相同的字符串.
| 归档时间: |
|
| 查看次数: |
1049 次 |
| 最近记录: |