我正在学习Scala,在case类的哈希码部分有些困惑。
就我所见,case类提供了toString、equals和hashCode的自动生成功能。
在Java中,传统的智慧是Java哈希码使用本地实现。
但在Scala中,它使用Murmur哈希 (MurmurHash3算法)
我的问题:
1)Java具有本地哈希码,因为哈希码是机器相关的,但如果Scala使用Murmur哈希,则如何实现机器无关性?
2)Scala除了case类还有常规类,通常类也使用Murmur哈希吗?
3)如果Murmur哈希真的是Java本地实现之后最快的实现,那么为什么Java仍然使用本地实现?