特点
面向对象编程
面向函数式编程(可以将方法作为参数)
静态类型的语言(比如变量a是什么数据类型在编译阶段就已经确定了,比如java,scala),与之对应的是动态类型语言,变量a的数据类型运行阶段确定,比如python
基于JVM(aa.scala 会被编译成aa.class,可以运行在JVM之上)
2、为什么学习Scala
(1)速度快
(2)优雅
(3)融入大数据生态圈,深入学习spark(kafaka,spark,flink都是scala实现的)
(4)工作scala编程工程师,远大于java开发工程师
tips
scala中在方法中可以定义方法
object HelloWorld {
def main(args: Array[String]): Unit = {
def printInfo(str:String = "i love java"):Unit = {
print(str)
}
printInfo()
printInfo("hah")
}
}
查看编译出来的class文件,编译成了3个static方法,1个main方法,1个默认值的printInfo方法,一个可以接受参数的printInfo方法