1.什么是Scala
Scala将面向对象和函数式编程结合成一种简洁的高级语言。Scala的静态类型有助于避免复杂应用程序中的错误。
1.1 为什么要学习Scala?
Spark基于内存的大数据计算框架,而Spark就是Scala开发的。所以为了学习好Spark需要掌握Scala语言。
1.2 Scala特点
Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程
Scala源代码会被编译成java字节码.class,然后运行在JVM上,并且可以调用现有的java类库,实现两种语言的无缝对接
Scala单作为一门编程语言来看,非常简洁高效
Scala参照了java的设计思想
2.伴生类和伴生对象
在scala中没有static关键字,使用object关键字来实现静态方法的功能。
class用来定义一个类。
2.1.用Scala写一个HelloWorld程序
Scala使用伴生对象来表示静态的属性和方法,object中的所有属性和方法默认都是静态的。
在scala中伴生类和伴生对象加起来等于java的一个类
伴生对象也可以单独存在,如果伴生对象单独存在的话,就叫做单例对象。
scala文件在编译后会生成.class字节码文件,因为scala是通过伴生对象object来实现静态的,所以在编译后会生成两个文件。HelloScala$.class用于存放静态代码,而HelloScala.class存放的是伴生类中的代码。
如果Scala代码中只依赖Java中的库,在cmd中可以通过java来直接运行scala的字节码文件,否则java要添加scala的类库。
3.Scala中的变量和注释
3.1 注释
单行注释:
多行注释:
文档注释:
和java中注释用法一致
3.2 变量和常量
常量:在程序执行的过程中,其值不会被改变的变量
java中的final如果加static才会被放入到常量池中,否则会作为不可修改的变量存储在堆栈中。
写在object伴生对象中才是常量,写在main方法中不属于常量
var和val的区别
val是不可变的,var修饰的变量的值是可以修改改变的
变量使用规则:
//1.声明变量的时候,类型是可以进行省略的,编译器自动推导
//只能推断固定的类型
val c=30;//此处的c为int类型,使用类型推断
//2.类型确定之后,就不能修改,scala是强类型语言
//3.声明变量的时候,必须要有初始值
//4.在定义或者声明一个变量的时候,可以使用var或val来修饰,var修饰的变量可以改变,而val修饰的变量是不能进行修改的
//5.var修饰的对象引用可以改变,val修饰的对象不可以改变,但是对象的状态(值)却是可以进行改变的。