2016-09-01 66 views

回答

1

Scala是隻是一個JVM/Java庫。所以是的,任何時候scala運行,JVM都會啓動。

如果是REPL,它會啓動和停止JVM。當您啓動和停止REPL時,您可以通過在另一個終端中執行jps進行確認。

+0

答案忽略scala-js和scala-native。 –

+0

@ som-snytt - scala和scala的新功能REPL儘管如此? – manojlds

+0

「只是一個JVM圖書館」太強大了。例如http://www.scala-js-fiddle.com/。這是新的新手體驗。 「命令行REPL使用在JVM上運行的scalac」目前正確,AFAIK。不要分割頭髮,只是說斯卡拉是真正的JS,也許只有在後端感興趣。 –

1

這取決於您正在使用哪個Scala實現。目前斯卡拉的不同平臺上被遺棄的兩個生產就緒穩定的實現,一個在發展,和兩個:

  • Scala.NET(廢棄):沒有JVM在所有涉及
  • 斯卡拉 - LLVM(拋棄):根本不涉及JVM
  • Scala-native(開發中):根本沒有涉及JVM
  • Scala.JS(生產就緒):根本沒有涉及JVM(除非你在Rhino,dyn.js或Nashorn上運行一個JVM)
  • Scala-JVM:有一個JVM參與,但是我當REPL啓動或停止時,t不一定必須啓動或停止。它取決於JVM。有JVM可以緩存和重用正在運行的JVM實例,而不是啓動和停止它們。還有Java操作系統,其中JVM是總是正在運行並且從未停止過。