diff --git a/notes/Scala基本数据类型.md b/notes/Scala基本数据类型和运算符.md
similarity index 60%
rename from notes/Scala基本数据类型.md
rename to notes/Scala基本数据类型和运算符.md
index 3a2967c..8145c54 100644
--- a/notes/Scala基本数据类型.md
+++ b/notes/Scala基本数据类型和运算符.md
@@ -1,4 +1,19 @@
-# Scala基本数据类型
+# Scala基本数据类型和运算符
+
+
+
## 一、数据类型
@@ -23,7 +38,7 @@ Scala 拥有下表所示的数据类型,其中Byte、Short、Int、Long和Char
## 二、字面量
-Scala和Java字面量在使用上很多相似,比如都使用F或f表示浮点型,都使用L或l表示Long类型。故下文主要介绍两者差异部分。
+Scala和Java字面量在使用上很多相似,比如都使用F或f表示浮点型,都使用L或l表示Long类型。下文主要介绍两者差异部分。
```scala
scala> 1.2
@@ -134,11 +149,11 @@ Scala和其他语言一样,支持大多数的操作运算符:
- 位运算符(~,&,|,^,<<,>>,>>>)
- 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=)
-以上操作符的基本使用与其他语言类似,以下主要介绍差异部分和注意事项。
+以上操作符的基本使用与Java类似,下文主要介绍差异部分和注意事项。
### 3.1 运算符即方法
-Scala的面向对象比Java更加纯粹,在Scala中一切都是对象。对于`1+2`,实际上是调用了Int类中名为`+`的方法,所以1+2,也可以写成`1.+(2)`。
+Scala的面向对象比Java更加纯粹,在Scala中一切都是对象。所以对于`1+2`,实际上是调用了Int类中名为`+`的方法,所以1+2,也可以写成`1.+(2)`。
```scala
scala> 1+2
@@ -150,7 +165,51 @@ res15: Int = 3
Int类中包含了多个重载的`+`方法,用于分别接收不同类型的参数。
-
+
### 3.2 运算符优先级
+操作符的优先级如下:优先级由上至下,逐级递减。
+
+
+
+在表格中某个字符的优先级越高,那么以这个字符打头的方法就拥有更高的优先级。如`+`的优先级大于`<`,也就意味则`+`的优先级大于以`<`开头的`<<`,所以`2<<2+2` , 实际上等价于`2<<(2+2)` :
+
+```scala
+scala> 2<<2+2
+res0: Int = 32
+
+scala> 2<<(2+2)
+res1: Int = 32
+```
+
+### 3.3 逻辑运算符
+
+和其他语言一样,在Scala中&&,||的执行是短路的,即如果左边的表达式能确定整个结果,右边的表达式就不会被执行,这满足大多数使用场景。但是如果你需要在无论什么情况下,都执行右边的表达式,则可以使用&或|代替。
+
+### 3.4 对象相等性
+
+如果想要判断两个对象是否相等,可以使用`==`和`!=`,这两个操作符可以用于所有的对象,包括null。
+
+```scala
+scala> 1==2
+res2: Boolean = false
+
+scala> List(1,2,3)==List(1,2,3)
+res3: Boolean = true
+
+scala> 1==1.0
+res4: Boolean = true
+
+scala> List(1,2,3)==null
+res5: Boolean = false
+
+scala> null==null
+res6: Boolean = true
+```
+
+
+
+## 参考资料
+
+1. Martin Odersky(著),高宇翔(译) . Scala编程(第3版)[M] . 电子工业出版社 . 2018-1-1
\ No newline at end of file
diff --git a/pictures/scala-操作符优先级.png b/pictures/scala-操作符优先级.png
new file mode 100644
index 0000000..9f7dca8
Binary files /dev/null and b/pictures/scala-操作符优先级.png differ