scala_day02

Java线程的实现方法

1 继承Thread,重写run()
2 实现Runnable接口,重写run()
3 线程池

java.util.concurrent包

Callable
Future

共享数据 -> 需要加锁 synchronize 互斥锁
锁定基本都是使用读写锁
乐观锁和悲观锁

1 面向对象的类、对象、trait和继承

1.1 类

1.2 对象

  1. object 相当于 class 的单个实例,通常在里面放一些静态的 field 或者 method;<br />

在Scala中没有静态方法和静态字段,但是可以使用object这个语法结构来达到同样的目的。
如果有一个class文件,还有一个与class同名的object文件,那么就称这个object是class的伴生对象,class是object的伴生类
? 伴生类和伴生对象必须存放在一个.scala文件中;
? 伴生类和伴生对象的最大特点是,可以相互访问;包括private的属性。

1.3 apply方法和main方法

  1. object 中非常重要的一个特殊方法,就是apply方法,当遇到类名(参数1,...参数n)时apply方法会被调用。<br />

main方法有两种形式,自定义和继承App。

1.4 继承

  1. 类的继承是单继承,用extends关键字。子类可以继承父类的属性和方法。override可以覆盖父类的方法和val的属性<br />

类型转换可以使用asInstanceOf实现,而类型的判断需要使用isInstanceOf 或者 是 getClass和classOf实现。
子类必定会调用父类的构造器,但是只能在主构造器中调用。
抽象类、抽象方法和抽象属性

1.5 trait

  1. trait可以当做接口使用,也可以当做抽象类使用。<br />

traint里面可以有抽象和非抽象的 属性和方法。
trait实现了多重继承,多个trait可以使用extends 和 with关键字进行继承。
继承了trait的子类,其构造机制如下:

? 父类的构造函数先执行, class 类必须放在最左边;

  1. 多个trait从左向右依次执行;构造trait时,先构造父 trait,<br />

如果多个trait继承同一个父trait,则父trait只会构造一次;
所有trait构造完毕之后,子类的构造函数最后执行。
创建对象时,使用 with 关键字指定混入某个 trait,混入后该对象具有trait的所有成员。
trait的调用链实现。

2 模式匹配和样例类

几种常见的模式匹配方式: 字符串匹配、类型匹配、数组/元组/List匹配、偏函数
可以使用样例类实现自定义数据的模式匹配。
case class和 case object

3 协变、逆变、上下界(看懂了解即可)

4 Actor编程步骤和代码(看懂了解即可)