答案 0 :(得分:9)
这是一个非常好的问题!我从来没有想过人们学习Java只是为了让他们更容易学习Scala ...
除了for
循环之类的所有基础知识之外,学习Java Generics可能非常有用。 Scala等价物比Java泛型更有效(并且更难理解)。您可能想要尝试找出Java Generics的限制在哪里,然后在哪些情况下可以使用Scala的类型构造函数来克服这些限制。在更基础的层面上,重要的是要知道为什么泛型是必要的,以及Java是一种强类型语言。
Java允许您为一个类提供多个构造函数。当您学习Scala时,这些知识将毫无用处,因为Scala有另一种方法可以提供多种方法来创建类的实例。所以,你宁愿不深入研究这个Java概念。
以下是Java和Scala之间存在很大差异的一些概念。因此,如果你学习了Java概念,然后想要学习Scala中的等价物,你应该知道Scala等价物与Java版本的差别很大,以至于典型的Java开发人员难以适应Scala方式思考。尽管如此,它通常有助于首先习惯Java方式,因为它通常更简单,更容易学习。我个人更喜欢将Java视为入门课程,Scala是专业版。
static
方法(Java)与单例对象(Scala)for
循环return
语句与Scala功能样式(“每个表达式返回一个值”)null
表示“无价值”与Scala更明确的Option
类型switch
与Scala的match
以下是您可能会在Java标准库中使用的内容列表,即使您使用Scala进行开发:
最后,Scala的一些功能在Java或Java标准库中没有直接的等价物:
for
comprehensions fold
或map
当然,所有列表都不完整。这只是我对重要事项的看法。我希望它有所帮助。
顺便说一下:你应该知道类路径和其他JVM基础知识。
答案 1 :(得分:4)
答案 2 :(得分:4)