学习链接:https://www.bilibili.com/video/BV1Xh411S7bP?spm_id_from=333.999.0.0
1 概述
1.1 优点
- Scala基于JVM,和Java完全兼容,同样跨平台、可移植性好、方便垃圾回收
- Scala比Java更加面向对象
- Scala是一门函数式编程语言
Scala更适合大数据的处理,内存级大数据计算框架,对集合类型数据处理有非常好的支持
1.2 Scala和Java的关系
1.3 Scala语言特点
以Java虚拟机为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言
Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
- Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
- Scala单作为一门语言来看,非常的简洁高效。
- Scala在设计时,参考了Java的设计思想
2 Scala环境搭建
- 安装JDK1.8
- 下载对应的Scala安装文件 scala-lang.org
- 解压zip
- 配置环境变量
- 测试
做a+b
退出
编译运行Scala程序
object HelloScala{
def main(args: Array[String]): Unit = {
println("hello scala")
}
}
C:\Users\ace\Desktop> scalac HelloScala.scala
生成了两个字节码文件
C:\Users\ace\Desktop>scala HelloScala hello scala
3 IDEA中Scala插件安装
4 HelloWorld案例
在IDEA中创建Maven
- main目录下创建scala目录,右键->Mark Directory as->Sources Root
- 对于当前项目,右键-> Add Frameworks Support->选中scala
- scala目录下创建一个package,hello
- 创建一个Object,HelloWorld ```scala package hello
object HelloWorld { def main(args: Array[String]): Unit = { println(“hello world”) } }
也可以调Java的类库
```scala
package hello
object HelloWorld {
def main(args: Array[String]): Unit = {
println("hello world")
System.out.println("hello scala for java")
}
}
- object:关键字,声明一个单例对象(伴生对象)
- main方法:从外部可以直接调用执行的方法
def 方法名称 (参数名称:参数类型): 返回值类型 = { 方法体 }
package hello
class Student(name: String, age: Int) {
def printInfo(): Unit = {
// school这个属性在Java中是static的,全局只有一份
println(name + " " + age + " " + Student.school)
}
}
// 引入伴生对象
object Student {
val school: String = "aaa"
def main(args: Array[String]): Unit = {
val aaaa = new Student("aaaa", 20)
val bbbb = new Student("bbbb", 21)
aaaa.printInfo()
bbbb.printInfo()
}
}
5 关联源码
- 从官网中下载源码包
- 拷贝到安装路径下的lib文件夹,解压
- 点Attach Source -> 选择刚才的文件夹