1、Scala介紹
- Scala(百度百科)
- 為什么要學習Scala
- 為什么要使用 Scala 語言?Scala 語言的優勢在哪里?
- 為什么選擇Scala,它在大資料處理方面有何優勢?
博主學習Scala的幾個原因:
1)大資料主要的批處理計算引擎框架Spark是基于Scala語言開發的;
2)大資料主要的流式計算引擎框架Flink也提供了Scala相應的API;
3)大資料領域中函式式編程的開發效率更高,更直觀,更容易理解;
2、Scala安裝和使用
- 使用IDEA創建一個Scala專案
- hashMap擴容、鏈表轉紅黑樹
- Java:位元組流和字符流(輸入流和輸出流)
- FileWriter無法指定檔案輸出編碼
- FileReader無法設定編碼格式
BufferedXXXX函式將資料封裝到記憶體中,記憶體中操作資料要快,所以它的效率要比非緩沖的高;BufferedXXXX資料輸出函式使用flush()方法手動把資料立刻寫到輸出流中(只有使用了Buffer的物件才需要實作基類的flush()方法),否則要等達到重繪條件才把資料寫到輸出流中,

2.1、Scala資料型別
Scala是完全面向物件的語言,所以不存在基本資料型別的概念,有的只是任意值物件型別(AnyVal)和任意參考物件型別(AnyRef),Char是兩個位元組,Unit對應java中的void,Nothing是所有物件的子類,


Java和Scala的強制型別轉換方法不一樣;基本上Scala的AnyVal型別之間都提供了相應轉換的方法,
int a = 10
byte b = (byte)a
var a : Int = 10
Var b : Byte = a.toByte
Java和Scala的“==”的比較規則不一樣
package com.atguigu.bigdata.scala.chapter03
object Scala01_Oper {
def main(args: Array[String]): Unit = {
// TODO 運算子
val s1 = new String("abc")
//val s1 : String = null
val s2 = new String("abc")
// 馬丁想:判斷兩個物件的記憶體地址的意義
// 判斷物件是否相等,雙等號會更加直觀
// scala語法中雙等號就是比較物件的內容,但是和equals不一樣,是非空equals操作
println( s1 == s2 )
println( s1.equals(s2) )
println( s1.eq(s2) ) // eq方法在編譯后就是java中的雙等號
val s = "abc" * 2
println(s)
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/423397.html
標籤:其他
