【发布时间】:2021-11-21 15:55:09
【问题描述】:
完全不同实例的可预测相同Object.hashCode()
如果我理解正确,那么对象的每个新实例的Object.hashCode() 应该是新的,并且几乎总是与以前的不同,但碰撞除外。
但我发现了一个有趣的模式。
如果我使用 Android Studio,创建一个 Activity 并在 onCreate、onStart、onResume、onPause、onStop、onRestart、onDestroy 方法中调用哈希码并在模拟器中运行应用程序,然后我在以下条件下的日志中得到相同的哈希码:
- Android Studio 中的每次 Activity 运行,即使我关闭模拟器和 Studio 并重新进入,即使我重新启动计算机 (Windows 10),但如果我冷启动模拟器,哈希码也会发生变化。李>
- 当然,在模拟器本身中,当 Activity 经历
onStart、onResume、onPause、onStop、onRestart循环时,哈希码不会改变。 - 如果我使用“后退”按钮关闭应用程序并在模拟器中再次运行它,哈希码会发生变化。
- 如果我通过从最近的应用程序屏幕中将应用程序滑出并重新启动它来终止应用程序 - 哈希码将与首次启动时相同。
【问题讨论】:
标签: android android-activity hashcode