好程式設計師大資料學習路線分享大資料之基礎語法

好程式設計師IT發表於2019-11-19
 1.2.1 計算機理論介紹
 1.2.2 程式設計基礎--進位制分類、進位制轉換

進位制 

就是進位制。指的是我們來表示一個數字的時候進位的制度。

進位制分類

計算機中,常用的進位制有以下幾種:

| 進位制     | 描述                           | 示例                    | 備註         |
| -------- | ------------------------------ | ----------------------- | ------------ |
| 二進位制   | 使用0和1來描述所有的自然數     | 0, 1, 10, 11, 100, 101  | 使用 0b開頭 |
| 八進位制   | 使用0-7來描述所有的自然數      | 4, 5, 6, 7, 10, 11, 12  | 使用 0開頭  |
| 十進位制   | 使用0-9來描述所有的自然數      | 6, 7, 8, 9, 10, 11, 12  |              |
| 十六進位制 | 使用0-9, a-f來描述所有的自然數 | 9, A, B, C, D, E, F, 10 | 使用 0x開頭 |

進位制轉換

  • 十進位制轉其他進位制

    • 輾轉相除法,用數字除進位制,再用商除進位制,一直到商為零結束,最後將每一步得到的餘數倒著連線
  • 其他進位制轉十進位制

    • 每一位的數字乘進位制的位數-1次方,再將所有的結果累加到一起
  • 二進位制與八進位制之間的相互轉換

    • 每一個八進位制位可以等價替換成三個二進位制位
    • 每一個十六進位制位可以等價替換成四個二進位制位

原碼、反碼、補碼

|      | 正數                             | 負數                                   |
| ---- | -------------------------------- | -------------------------------------- |
| 原碼 | 由數字直接計算出的二進位制表示形式 | 最高位表示符號位: 0代表正數, 1代表負數 |
| 反碼 | 與原碼相同                       | 符號位不變, 其他位按位取反             |
| 補碼 | 與原碼、反碼相同                 | 反碼 + 1                               |

注意事項:

  • 資料的儲存與運算都是以補碼的形式進行的
  • 補碼與補碼運算的結果還是補碼
  • 對補碼再求一次補, 可以得到原碼
 1.2.3 什麼是Java

Java 是一種物件導向的程式設計語言,可以使用這種語言編寫程式,實現我們想要的一些功能。主要分三塊:

J2SE: Java的標準版,用於標準的應用程式開發。

J2ME: Java的微型版,常用於移動端的開發。

J2EE: Java的企業版,用於企業級的應用服務開發。

Java程式的執行,需要先將.java原始檔編譯成.class位元組碼檔案,然後由jvm虛擬機器將這些位元組碼檔案翻譯成機器語言,然後執行相應的操作。

常用名詞解釋

JDK: Java Development Kit, Java開發框架, 開發Java程式需要用到的各種工具包。

JRE: Java Runtime Envrioment, Java執行時環境。

JVM: Java Virtual Mechine, Java虛擬機器, 能夠執行Java程式

 1.2.4 常用DOS命令
  • cd: 切換到指定的路徑
  • dir: 列舉當前目錄下的所有檔案和資料夾
  • mkdir: 建立資料夾
  • rmdir: 刪除資料夾
 1.2.5 JDK的安裝與環境變數的配置
  • JDK的安裝

    • 找到對應的版本號, 直接安裝即可
    • 安裝完成後, 在 jdk 的 bin 目錄下, 有編譯執行Java程式所需要的指令
  • 環境變數的配置

    • 為什麼要配置環境變數

      • 因為我們需要使用bin目錄下的javac和java指令來編譯和執行程式, 而使用這兩個程式的話, 就需要先用cd切到指定路徑下才能執行, 並且引數需要寫java檔案所在的目錄, 因此在編譯和執行程式的時候非常不方便。因此需要將bin目錄新增到環境變數, 這樣我們就可以在任意的路徑下使用javac和java指令,來對我們的程式進行編譯和執行。
    • 怎麼配置環境變數

      • 我的電腦 -> 右鍵 -> 屬性 -> 高階系統設定 -> 環境變數
      • 選擇系統變數 -> Path -> 編輯

        • win10: 新建一個變數,將jdk下面的bin目錄貼上進去,並上移到最上方
        • win7/8: 將jdk下面的bin目錄的路徑貼上到所有路徑的最前方,然後新增一個路徑分隔符;
    • 怎麼驗證環境變數是否配置成功

      • 新建一個DOS視窗, 輸入指令 javac, 如果沒有錯誤提示就是是成功
 1.2.6 註釋

註釋是對程式碼的描述, 是開發者寫給自己或者別人看的, 相當於我們記錄的一些筆記, 或者備忘錄。 註釋部分的內容不會被編譯, 因此沒有語法上的要求。

註釋可以分為三類:

  • 單行註釋: 以兩個 // 開頭, 後面的一行內容會被註釋
  • 多行註釋: 以一個 /  開頭, 以一個 / 結尾。中間所有的內容都會被註釋
  • 文件註釋: 以 / * 開頭, / 結尾。文件註釋中可以新增一些標籤,更方便的記錄程式的資訊
 1.2.7 資料型別

在程式中, 我們需要操作各種各樣的資料, 這些資料都有各自不同的型別。

Java中, 所有的資料可以分為兩大類: 基本資料型別 和 引用資料型別

引用資料型別, 又叫做引用型別。在後面課程中具體說明。

基本資料型別, 又叫做值型別, 在Java中有以下分類:

  • 整型

    • 就是整數, 按照佔用空間大小, 分為四種
    • 位元組型: byte, 1byte, [-128, 127]
    • 短整型: short, 2byte, [-2^15^, 2^15^-1]
    • 整型: int, 4byte, [-2^31^, 2^31^-1]
    • 長整型: long, 8byte, [-2^63^, 2^63^-1]
  • 浮點型

    • 就是小數, 按照佔用空間大小, 分為兩種
    • 單精度浮點型: float, 4byte
    • 雙精度浮點型: double, 8byte
    • 雙精度浮點型可以比單精度浮點型精確更多的小數點後面的位數
  • 布林型

    • 用來描述程式中不是對的就是錯的, 不是真的就是假的資料
    • boolean, 1byte
    • 只有兩個值: true / false
  • 字元型

    • 用來描述組成一個文字的最小單元
    • char, 2byte
    • 字元型的資料, 需要用單引號括起來, 單引號中只能有一個字元, 不能多也不能少
 1.2.8 識別符號

由若干個字元組成的一個有序的序列, 用來描述程式中的一個資料

命名規則

  • 只能由字母、數字、下劃線和$符號組成
  • 不能以數字作為開頭
  • 不能與關鍵字和保留字同名

    • 關鍵字: 系統佔用的, 已經被賦予了特殊含義的字元序列
    • 保留字: 系統佔用的, 暫時還沒有特殊含義, 但是後續可能會用到的字元序列

命名規範

  • 望文知意: 應該可以從識別符號的命名中看出想表述的資料含義
  • 遵循駝峰命名法

    • 大駝峰命名法: 所有的單詞首字母都大寫
    • 小駝峰命名法: 首單詞除外, 從第二個單詞開始, 每個單詞的首字母都大寫
 1.2.9 變數和常量

變數: 在程式執行的過程中, 數值可以發生改變的資料

常量: 在程式執行的過程中, 數值不可以發生改變的資料

在程式中的宣告

  • 變數

    • 資料型別 識別符號;
    • 資料型別 識別符號 = 初始值;
    • 資料型別 識別符號1, 識別符號2, ...;
    • 資料型別 識別符號1 = 初始值, 識別符號2, 識別符號3 = 初始值, ...;
  • 常量

    • final 資料型別 識別符號 = 初始值;
    • final 資料型別 識別符號; 識別符號 = 初始值;
    • Java允許在宣告常量的時候不賦值初始值, 可以延遲賦值。但是賦值只能進行一次。
 1.2.10 跳脫字元

一個特殊的字元, 主要有兩個作用

  • 可以將某些具有特殊含義的字元轉成普通字元

    • 單引號, 用來匹配一個字元的開始和結尾, 跳脫字元可以使其成為一個普通的單引號
    • 雙引號, 用來匹配一個字串的開始和結尾, 跳脫字元可以使其成為一個普通的雙引號
  • 可以配合某些普通字元使用, 使其沒有特殊含義

    • n本身是一個普通字元, 配合跳脫字元使用: n 表示換行
    • t本身是一個普通字元, 配合跳脫字元使用: t 表示tab
    • r本身是一個普通字元, 配合跳脫字元使用: r 表示return
 1.2.11 資料型別轉換

一個變數宣告完成後, 在記憶體中已經開闢好了空間, 此時是不允許調整空間大小的, 也就是說這個變數的資料型別是不允許改變的。這裡說的資料型別轉換, 指的是宣告一個新的指定型別的變數, 將原來變數中的值複製到新的變數中。

資料型別轉換可以分為兩種:

  • 自動型別轉換

    • 又叫做隱式轉換, 一般是由取值範圍小的資料型別, 向取值範圍大的資料型別轉換
    • 轉換過程不需要任何額外操作
    • 轉換後, 沒有任何精度丟失情況
  • 強制型別轉換

    • 又叫做顯式轉換, 一般是由取值範圍大的資料型別, 向取值範圍小的資料型別轉換
    • 轉換過程需要強制操作, 不能自動完成
    • 轉換後, 可能會出現精度丟失的情況
byte a = 10;
int b = a;    // 由 byte 型別轉型為 int 型別, 自動完成, 不需要任何額外操作
int c = 128;
byte d = (byte)c; // 由 int 型別轉型為 byte 型別, 強制操作, 會存在精度丟失

額外說明

  • byte, short, char 型別的資料在進行運算的時候, 會自動的轉型為int型別
  • 浮點型轉整型, 會捨去小數點後面所有的內容, 只保留整數部分
 1.2.12 常用運算子

算術運算子

用來做基礎的算術計算, + - * / % ++ --

其中:

  • + - * % 和數學計算中沒有區別
  • 兩個整型的資料進行除法, 結果還是整型, 會將計算的浮點結果強轉成整型
  • 自增運算子++, 用在變數前, 表示是前取變數值, 後對這個變數進行+1操作
  • 自增運算子++, 用在變數後, 表示是先對這個變數進行+1操作, 然後再取變數值
  • 自減同自增
int a = 10;

 

int b = a++;    // b的值是10

int c = ++b;    // c的值是11

賦值運算子

=: 將等號右邊的值, 給左邊的變數進行賦值

+=, -=, *=, /=, %=: 組合運算子, 對一個變數進行運算

a += 10; 等價於 a = a + 10

關係運算子

> < >= <= == !=

邏輯運算子

& : 與and

| : 或or

! : 非not

^ : 異或xor, 計算邏輯: 兩個相同為false, 兩個不同為true

&& : 

短路與, 結果與邏輯與相同. 區別在於: 如果前面的結果可以決定整體的運算結果, 後面的表示式不參與運算

|| :

短路或, 結果與邏輯或相同. 區別在於: 如果前面的結果可以決定整體的運算結果, 後面的表示式不參與運算

位運算

位運算操作的是兩個整型的數字, 計算的邏輯就是將兩個整型的數字求出補碼, 再對補碼的每一位做類似於邏輯運算的操作, 其中 1 相當於 true, 0 相當於 false

三目運算子

condition ? expression1 : expression2

condition是一個boolean型別的變數, 或者一個boolean結果的表示式. 如果condition為true, 最終整體的結果取expression1, 否則, 結果取expression2


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2664808/,如需轉載,請註明出處,否則將追究法律責任。

相關文章