Scala简介和装置
简介
Scala是一种多范式的编程言语(多范式:多种编程办法的意思。有面向进程、面向对象、泛型、函数式四种程序规划办法),其规划的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运转于Java渠道(Java虚拟机),并兼容现有的Java程序
官网:https://www.scala-lang.org/
Scala以一种简练的高档言语结合了面向对象和函数式编程。 Scala的静态类型有助于防止杂乱运用程序中的bug,它的JVM和JavaScript运转时让您能够轻松地构建高性能体系,并轻松拜访巨大的库生态体系。
为什么要学习scala
- 高雅:这是结构规划师第一个要考虑的问题,结构的用户是运用开发程序员,API是否高雅直接影响用户体会。
- 速度快:Scala言语表达能力强,一行代码抵得上Java多行,开发速度快;Scala是静态编译的,所以和JRuby,Groovy比起来速度会快许多。
- 能融合到Hadoop生态圈:Hadoop现在是大数据事实标准,Spark并不是要替代Hadoop,而是要完善Hadoop生态。JVM言语大部分可能会想到Java,但Java做出来的API太丑,或许想完结一个高雅的API太费力。
- spark分布式运算结构是scala言语编写的
发展史
scala和java的联系
正常情况下,会scala的程序员都是会Java的,scala是根据java的,所以咱们先搞清楚java,scala和jvm的联系
特色
Scala是一门以Java虚拟机(JVM)为运转环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程言语(静态言语需求提早编译的如:Java、c、c++等,动态言语如:js)。
- Scala是一门多范式的编程言语,Scala支撑面向对象和函数式编程。
- Scala源代码(.scala)会被编译成Java字节码(.class),然后运转于JVM之上,并能够调用现有的Java类库,完结两种言语的无缝对接。
- Scala单作为一门言语来看,十分的简练高效,可认为咱们的代码防止一些bug。
salca环境建立
因为scala是根据java来开发的, 编写的java类能够运用javac指令编译成.class文件被JVM加载到内存中履行 ! 那么scala能够经过scalac指令将编写的scala文件编译成.class文件相同被JVM加载到内存中,因而Scala是运转在JVM渠道上的,所以装置Scala之前要装置JDK!
Windows
办法一
拜访Scala 官网 下载Scala编译器装置包,现在最新版别是3.1.3,可是现在大多数的结构都是用2.12.x编写开发的,Spark3.x运用的便是2.12.x,所以这儿引荐2.12.x版别,下载scala-2.12.11.msi后点击下一步就能够了!
办法二
解压装备体系环境变量
在windows的控制台输入scala ,显现如下音讯阐明windows环境搞定!
留意 1:解压途径不能有任何中文途径,最好不要有空格。
留意 2:环境变量要大写 SCALA_HOME
Linux
- 下载后上传Scala文件到linux上的定目录
- 解压
- 装备环境变量,将scala加入到PATH中
vi /etc/profile
export SCALA_HOME=/opt/app/scala/scala-2.12.11
export PATH=$PATH:$JAVA_HOME/bin:/usr/java/scala-2.12.11/bin
测验验证scala装置完结,恣意方位输入scala后显现scala的指令行,然后在里面测验两数相加
装备Idea
办法一:离线装置
翻开jetbrains得官网:http://www.jetbrains.com后点击Develop Tools后挑选scala
然后挑选idea对应得版别下载插件(DownLoad即可)
翻开idea后找到左上角得File --》settings --》plugins
点击设置挑选Install Plugin from Disk ...后挑选方才下载得插件,点击ok后重启idea即可
办法二:在线装置
翻开idea后找到左上角得File --》settings --》plugins--》查找scala后install后重启idea即可
创立scala项目
- 创立一个maven项目
- 在src--》main--》创立一个scala包
- 右击scala包下挑选Mark Directory as --》 Sources Root
4. 右击项目名--》Add Framework Support...
5. 进去挑选scala,然后将scala得sdk增加进去,点击ok即可创立scala类了
编写scala的类
- scala文件都是以.scala结束的
- scala中的命名标准和java中的共同
- scala中的main办法要写在objec润饰的类中
- scala的履行流程和java的相似 , 先编译再履行,因而有编译期的过错推导
- scala 代码中的行结尾的分号最好不书写 ,表现其简练
object HelloWorld {
def main(args: Array[String]): Unit = {
println("HelloWorld")
System.out.println("java中的一部分代码在scala中也是能够运转的")
}
}