我想知道两种可能性中哪一种是更可取的。我认为它们大致相同。 有两种实现方式的原因是什么? 在性能或功能上有区别吗?
答案 0 :(得分:4)
在大多数情况下使用scala.Byte
,因为它在Java术语中既与 byte
和java.lang.Byte
都对应,而且您通常希望使用byte
。编译器将在可行的情况下将byte
用于scala.Byte
。
答案 1 :(得分:3)
我认为它们或多或少都一样。
完全一样。 Scala编译器编译为Java字节码,就像Java编译器也编译为JVM字节码一样。因此,scala.Byte
的字节码与java.lang.Byte
的用法相同。
为什么要执行两种实施方式?
“ Scala在JVM上运行,因此Java和Scala堆栈可以自由混合以实现完全无缝的集成。”这就是在https://www.scala-lang.org/上描述Scala的方式。因此,Scala中实际上没有两个实现。如果愿意,您可以使用Java中的功能。
在性能或功能上是否存在差异
如上所述,您可以在字节码级别将它们视为相等。但是,它们至少在用法上有所不同。如果像使用Java一样编写Scala代码,则可以期望获得相同的性能。
推荐使用哪个?
如果可以,请使用Scala实现。仅仅是因为您不会离开“ Scala世界”,因此可以从语言的潜在改进中受益。