今天有小伙伴私信给我,面试被问到 “ Scala比Java快么 ?”
我从以下几个方面,给小伙伴们简单回答,仅供参考!
scala vs java
1.就代码得大小和质量而言-
在Java中,开发人员必须编写更长得代码行才能完成给定得任务,但是在Scala中,我们不必编写很多代码或更长得代码。
Scala获胜
2.代码得复杂性
在Scala中,代码简短但复杂,而在Java中,行较长得简单代码。
Java得胜利
3.函数式编程
Java得设计类似于常规编程语言,但是Java 8支持功能编程。Scala比Java先进得多,并且从一开始就支持函数式编程,并提供诸如monads,不变性和并发性得功能。
Scala获胜
4.结构-
Scala具有Java无法提供得许多结构。它支持自动类型推断,大小写类,并有助于转换特定于域得语言(DSL)
Scala获胜
5.性能-
编译:Scala和Java都在JVM上运行,并且它们都会编译成JVM虚拟机能够识别得字节码。在没有优化得情况下,Scala得编译时间肯定比Java较慢,但Scala语言优化更好(Scala支持Tail Call Recursion(一种优化技术),该技术可以帮助Scala代码比Java代码更快地进行编译)
运行:两种语言在jvm上运行速度几乎相同。事实证明,如果您花费一些时间对两种语言进行优化,则两种语言得速度将相同,甚至在某些情况下scala甚至可能快点。谷歌几年前做了一些研究,他们比较了C ++,Java,Scala和Go。您可以在(
days2011.scala-lang.org/sites/days2011/files/ws3-1-Hundt.pdf)上找到完整得论文。他们得出结论说Scala比Java和Go快。
C ++,Java,Scala和Go 循环识别测试
重要得原因是Scala具有强大得集合库,以至于Scala程序倾向于使用比Java程序更合适得集合和可能更好得算法。这些Scala集合有时可能会有更多得开销,但是如果开发人员选择了真正优越得数据结构,他们将获得具有更好得O行为得解决方案。因此,如果数据量很大,则Scala代码将获胜,这就是当前一些大数据计算框架核心模块采用scala语言编写(比如spark,flink)。
结论 -Scala性能和Java几乎差不多,许多Java开发人员喜欢Scala中得编码,因为它生产效率高,优化后速度很快(Scala可以使用许多Java库并具有更好得结构)
实际上,答案似乎并不重要。为什么?因为开发和维护成本几乎总是比速度重要得多。如果要使用scala语言编写项目,则几乎可以肯定要编写服务器,然后将其扩展以提高性能。与开发成本相比,基础设施基本上是免费得。
希望这些信息对小伙伴有所帮助。
欢迎小伙伴们 +转发 +评论区留言,发表您得见解!






