|NO.Z.00002|——————————|BigDataEnd|——|Hadoop&Scala.V02|——|Scala.v02|Scala基础|语言概况|
一、Scala基础
### --- Scala语言概况:Scala语言起源
~~~ 马丁·奥德斯基(Martin Odersky)是编译器及编程的狂热爱好者。
~~~ 主流JVM的Javac编译器就是马丁·奥德斯基编写出来的,JDK5.0、JDK8.0的编译器就是他写的。
~~~ 长时间的编程之后,他希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。
~~~ 当接触到Java语言后,对Java这门语言产生了极大的兴趣,
~~~ 所以决定将函数式编程语言的特点融合到Java中,由此发明了Scala。
### --- Scala语言特点
~~~ Scala是一门以 JVM 为运行环境并将面向对象和函数式编程的最佳特性结合在一起
~~~ 静态类型编程语言。
~~~ Scala源代码会被编译成Java字节码,然后运行于JVM之上,并可以调用现有的Java类库,
~~~ 实现两种语言的无缝互操作的。
~~~ # 面向对象
~~~ Scala是一种面向对象的语言。
~~~ Scala中的每个值都是一个对象,包括基本数据类型(即布尔值、数字等)在内,连函数也是对象。
~~~ # 函数式编程
~~~ Scala也是一种函数式语言,其函数也能当成值来使用。
~~~ Scala中支持高阶函数,允许嵌套多层函数,并支持柯里化。
~~~ Scala提供了模式匹配,可以匹配各种情况,比如变量的类型、集合的元素、有值或无值。
~~~ # 静态类型
~~~ Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。
~~~ # 并发性
~~~ Scala使用Actor作为其并发模型,Actor是类似线程的实体。
~~~ Actor可以复用线程,因此可以在程序中使用数百万个Actor,而线程只能创建数千个。
### --- 为什么要学Scala
~~~ # 优雅:
~~~ 这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,
~~~ API是否优雅直接影响用户体验。
~~~ # 简洁:
~~~ Scala语言表达能力强,一行代码抵得上Java多行,开发速度快。
~~~ # 融合大数据生态圈:
~~~ Hadoop现在是大数据事实标准,
~~~ (Kafka Spark源码都是用Scala编写的,SparkFlink都支持使用Scala进行开发)
~~~ Spark并不是要取代Hadoop,而是要完善Hadoop生态。

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv015-scala
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库