1. 程式人生 > >Spark視訊王家林第3課:在IDE下開發第一個Scala程式純傻瓜式徹底透徹解析

Spark視訊王家林第3課:在IDE下開發第一個Scala程式純傻瓜式徹底透徹解析

內容:

    1.控制結構     2.Scala的基礎語法

/**
  * FileName: HelloScala
  * Author:   hadoop
  * Email:    [email protected]
  * Date:     18-11-5 上午9:32
  * Description:
  */
object HelloScala {
 
  def main(args: Array[String]): Unit = {
    println("Hello Scala!!!")
    println(args.length)
  }
}

一、控制結構

    1.object作為Scala中的一個關鍵字,相當於Java中的public static class這樣的修飾符,也就是說object中的成員是靜態的成員變數,所以main方法是靜態的,不需要類的例項就可以被虛擬機器呼叫,這正式作為JVM入口函式的必備條件。     2.疑問:object是不是一個物件(此時你一定是從Java的角度考慮的,但事實是Scala中的靜態類,不是物件)     3.從Spark的Master和Worker的原始碼中可以發現其入口是main方法是在object中的

二、Scala的基礎語法

    * 1.def 是scala的關鍵字,所有的def定義的內容都是函式或者方法     * 2.main是方法,因為被def定義且不具有函式的特點     * 3.main是SCala語言中規定的scala的運用程式的入口,一個執行的scala運用程式只能有一個main方法     * 4.args: Array[String],其中args是引數名稱,Array[String]表明程式執行時候傳入引數的型別     * 5.: Unit表明main入口方法的型別是Unit,執行main方法後返回Unit     * 6.Unit相當於Java中的void型別     * 7.=表明main方法執行的結果是由誰來賦值的,或者說main方法的方法體在=右面     * 8.方法體一般用{}來封裝,裡面可以有很多條語句     * 9.{}語句塊預設情況下最後一條語句的結果型別就是{}的返回型別     * 10.跟蹤println原始碼收穫發現scala的println的IO操作是藉助Java的IO操作,也就是說scala呼叫了Java     * 11.如果方法或者函式的型別或者返回型別是Unit型別,就可以把”: Unit =“去掉,其他非此方法都不能去掉     * 12.關於println打印出內容到控制檯,底層接住了Java IO的功能,一個事實是scala經常會用Java的實現來縮短開發時間,比如說來操作(BD,NoSQL(Cassadra,Hbase等))的JDBC,在例如關於執行緒Thread的操作,scala往往也會使用Java中的Thread;     * 13.按照當今OS的原理,程式的main方法都是執行在主執行緒中的,OS的執行分為Kernel Space和user Space,執行程式是執行在User Space中的,運用程式scala所在的程序一般都是通過OS Fork出來的,被Fork出來的運用程式程序預設會有主執行緒 ,而我們的main方法就是預設在主執行緒中的