大資料:分享大資料之基礎文法
1 計算機理論介紹
2 程式設計基礎--進制分類、進制轉換
進制
就是進位制。指的是我們來表示一個數字的時候進位的制度。
進制分類
計算機中,常用的進制有以下幾種:
描述 | 示例 | 備注 | |
---|---|---|---|
二進制 | 使用0和1來描述所有的自然數 | 0, 1, 10, 11, 100, 101 | 使用 開頭 |
八進制 | 使用0-7來描述所有的自然數 | 4, 5, 6, 7, 10, 11, 12 | |
十進制 | 使用0-9來描述所有的自然數 | 6, 7, 8, 9, 10, 11, 12 | |
十六進制 | 使用0-9, a-f來描述所有的自然數 | 9, A, B, C, D, E, F, 10 | |
進制轉換
- 十進制轉其他進制
- 輾轉相除法,用數字除進制,再用商除進制,一直到商為零結束,最後将每一步得到的餘數倒着連接配接
- 其他進制轉十進制
- 每一位的數字乘進制的位數-1次方,再将所有的結果累加到一起
- 二進制與八進制之間的互相轉換
- 每一個八進制位可以等價替換成三個二進制位
- 每一個十六進制位可以等價替換成四個二進制位
原碼、反碼、補碼
正數 | 負數 | |
---|---|---|
原碼 | 由數字直接計算出的二進制表示形式 | 最高位表示符号位: 0代表正數, 1代表負數 |
反碼 | 與原碼相同 | 符号位不變, 其他位按位取反 |
補碼 | 與原碼、反碼相同 | 反碼 + 1 |
注意事項:
- 資料的存儲與運算都是以補碼的形式進行的
- 補碼與補碼運算的結果還是補碼
- 對補碼再求一次補, 可以得到原碼
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 資料類型轉換
一個變量聲明完成後, 在記憶體中已經開辟好了空間, 此時是不允許調整空間大小的, 也就是說這個變量的資料類型是不允許改變的。這裡說的資料類型轉換, 指的是聲明一個新的指定類型的變量, 将原來變量中的值拷貝到新的變量中。
資料類型轉換可以分為兩種:
- 自動類型轉換
- 又叫做隐式轉換, 一般是由取值範圍小的資料類型, 向取值範圍大的資料類型轉換
- 轉換過程不需要任何額外操作
- 轉換後, 沒有任何精度丢失情況
- 強制類型轉換
- 又叫做顯式轉換, 一般是由取值範圍大的資料類型, 向取值範圍小的資料類型轉換
- 轉換過程需要強制操作, 不能自動完成
- 轉換後, 可能會出現精度丢失的情況
java
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