Scala开发人员应该了解Java和/或JVM的哪些知识?

2022-09-02 19:50:43

所以直到大约6个月前,我的大部分工作(大图处理)都是由Python和C++组成的。到那时为止,甚至现在,我还没有写过任何Java。我看过这门语言,熟悉语法(来自C/C++背景),喜欢JVM的想法,但从未真正写过大量的Java。

当我拿起Scala时,我喜欢它,OOP和函数式编程功能集于一身,它在JVM上非常棒。我一直在努力提高我的Scala,并且一直在玩Akka,并且仍然喜欢它。然而,有时,也许只是我过度思考它,但我觉得我应该更多地了解Java和/或JVM。

我从许多人那里听说Scala应该被认为是一种独立于Java的语言,就像C++到C一样。也许你可能会有同样的感觉,也许学习Java与学习Scala或多或少是脱节的,但我觉得学习更多关于JVM的知识(例如JIT编译,类型擦除)会有所帮助?

思潮?


答案 1
  1. JVM执行字节码,了解它是如何工作的绝对是有帮助的,就像有时知道C / C++方法调用如何工作或类如何初始化一样;因为有时它很重要,不能抽象出来。

  2. Java是JVM的主要语言,如果你需要直接使用Java类,能够在一定程度上阅读Java是有帮助的。这可能经常发生;仅举几个例子:

    • 你需要使用一些第三方Java库(而且有很多)
    • 使用属性
    • 你需要在Swing中做一些特殊的事情,这是Scala-Swing包装器不支持的
    • 也解释1)的东西的来源很可能会使用Java示例

但我的建议是不要提前研究它 - 你会在需要的时候拿起它。


答案 2

现在就买这本书:Java Performance。它仅在去年10月发布,对于任何想要了解JVM的人来说都是一个信息宝库。如果你要成为一名 Scala 开发人员,你至少必须了解垃圾回收和 JVM 运行时参数。


推荐