CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Scala 语言入门/课时/Scala 是什么
RawBlame
课时目录12 节

Scala 语言入门

  1. 01Scala 是什么
  2. 02基础语法
  3. 03OOP 与模式匹配
  4. 04集合与高阶函数
  5. 05函数式编程
  6. 06类型系统
  7. 07构建工具
  8. 08后端框架
  9. 09数据与 JSON
  10. 10测试
  11. 11并发与流
  12. 12综合练习

Scala 是什么

JVM 生态、sbt、与 Java/Kotlin 对照。

30 分钟

Scala 是什么

Scala 是运行在 JVM 上的多范式语言,融合面向对象与函数式编程,语法表达力强、类型系统丰富。典型场景包括大数据(Spark)、高并发后端(Akka/Pekko)、类型安全 DSL 与 Java 生态互操作。本 track 对接 /roadmaps/scala 路线图;CodeRoadMap 主线仍是 Java / Spring Boot,Scala 作为 JVM 生态技能补充很有价值。

学习目标

  • 了解 Scala 的典型应用场景与选型理由
  • 安装 JDK 与 sbt,运行 Hello World
  • 对照 Java / Kotlin 理解 Scala 在 JVM 生态中的位置
  • 明确本 track 在 /roadmaps/scala 中的位置

核心概念

领域示例
大数据Apache Spark(Scala API 为原生语言)
高并发后端Akka / Apache Pekko、Play Framework
函数式 Webhttp4s、ZIO HTTP
企业互操作与 Java 类库无缝调用、渐进式迁移

Scala 编译为 JVM 字节码,与 Java 共享运行时与生态(Maven 仓库、JDBC、Spring 等)。与 Kotlin 相比,Scala 更偏函数式与类型级编程;与 Java 相比,语法更简洁、集合操作更声明式。

安装与验证

访问 scala-lang.org 与 sbt 官网。Windows 可用 winget install Scala.Scala 或 choco install sbt。

java -version
scala -version
sbt --version

第一个程序

@main def hello(): Unit =
  println("Hello, CodeRoadMap!")

// 传统入口(Scala 2 风格)
object Main:
  def main(args: Array[String]): Unit =
    val name = if args.nonEmpty then args(0) else "World"
    println(s"Hello, $name!")
scala-cli run hello.scala
# 或 sbt 项目内: sbt run

sbt 是 Scala 的构建工具,类似 Maven / Gradle;scala-cli 适合单文件快速实验。

与 Java 对照

维度ScalaJava
范式OOP + FP 融合以 OOP 为主,FP 逐步增强
语法表达式导向、推断多语句导向、显式类型多
并发Actor / Future / ZIO线程池 / Virtual Thread
互操作直接调用 Java 类可调用 Scala 编译产物
构建sbt / Mill
Maven / Gradle

深入 Java 后端见 java-fundamentals → spring-boot-essentials;Kotlin 对照见 kotlin-essentials。

练习

  • 确认 java -version ≥ 17 且 sbt --version 可用
  • 用 scala-cli 或 sbt new 创建项目并运行 Hello World
  • 浏览 /roadmaps/scala,标记「语言基础」节点

小结

Scala = JVM 生态 + 函数式表达力 + 与 Java 互操作。 下一课变量、控制流与基础语法。本 track 见 scala-essentials。

加载本节练习…
下一课 →基础语法