午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

好程序員大數(shù)據(jù)教程分享大數(shù)據(jù)之基礎(chǔ)語(yǔ)法

 好程序員IT 2019-11-19


1.2.1 計(jì)算機(jī)理論介紹

1.2.2 編程基礎(chǔ)--進(jìn)制分類(lèi)、進(jìn)制轉(zhuǎn)換

進(jìn)制

就是進(jìn)位制。指的是我們來(lái)表示一個(gè)數(shù)字的時(shí)候進(jìn)位的制度。

進(jìn)制分類(lèi)

計(jì)算機(jī)中,常用的進(jìn)制有以下幾種:

| 進(jìn)制     | 描述                           | 示例                    | 備注         |

| -------- | ------------------------------ | ----------------------- | ------------ |

| 二進(jìn)制   | 使用0和1來(lái)描述所有的自然數(shù)     | 0, 1, 10, 11, 100, 101  | 使用`0b`開(kāi)頭 |

| 八進(jìn)制   | 使用0-7來(lái)描述所有的自然數(shù)      | 4, 5, 6, 7, 10, 11, 12  | 使用`0`開(kāi)頭  |

| 十進(jìn)制   | 使用0-9來(lái)描述所有的自然數(shù)      | 6, 7, 8, 9, 10, 11, 12  |              |

| 十六進(jìn)制 | 使用0-9, a-f來(lái)描述所有的自然數(shù) | 9, A, B, C, D, E, F, 10 | 使用`0x`開(kāi)頭 |

進(jìn)制轉(zhuǎn)換

- 十進(jìn)制轉(zhuǎn)其他進(jìn)制

  - 輾轉(zhuǎn)相除法,用數(shù)字除進(jìn)制,再用商除進(jìn)制,一直到商為零結(jié)束,最后將每一步得到的余數(shù)倒著連接

- 其他進(jìn)制轉(zhuǎn)十進(jìn)制

  - 每一位的數(shù)字乘進(jìn)制的位數(shù)-1次方,再將所有的結(jié)果累加到一起

- 二進(jìn)制與八進(jìn)制之間的相互轉(zhuǎn)換

  - 每一個(gè)八進(jìn)制位可以等價(jià)替換成三個(gè)二進(jìn)制位

  - 每一個(gè)十六進(jìn)制位可以等價(jià)替換成四個(gè)二進(jìn)制位

原碼、反碼、補(bǔ)碼

|      | 正數(shù)                             | 負(fù)數(shù)                                   |

| ---- | -------------------------------- | -------------------------------------- |

| 原碼 | 由數(shù)字直接計(jì)算出的二進(jìn)制表示形式 | 最高位表示符號(hào)位: 0代表正數(shù), 1代表負(fù)數(shù) |

| 反碼 | 與原碼相同                       | 符號(hào)位不變, 其他位按位取反             |

| 補(bǔ)碼 | 與原碼、反碼相同                 | 反碼 + 1                               |

注意事項(xiàng):

- 數(shù)據(jù)的存儲(chǔ)與運(yùn)算都是以補(bǔ)碼的形式進(jìn)行的

- 補(bǔ)碼與補(bǔ)碼運(yùn)算的結(jié)果還是補(bǔ)碼

- 對(duì)補(bǔ)碼再求一次補(bǔ), 可以得到原碼

1.2.3 什么是Java

Java是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,可以使用這種語(yǔ)言編寫(xiě)程序,實(shí)現(xiàn)我們想要的一些功能。主要分三塊:

J2SE: Java的標(biāo)準(zhǔn)版,用于標(biāo)準(zhǔn)的應(yīng)用程序開(kāi)發(fā)。

J2ME: Java的微型版,常用于移動(dòng)端的開(kāi)發(fā)。

J2EE: Java的企業(yè)版,用于企業(yè)級(jí)的應(yīng)用服務(wù)開(kāi)發(fā)。

Java程序的運(yùn)行,需要先將.java源文件編譯成.class字節(jié)碼文件,然后由jvm虛擬機(jī)將這些字節(jié)碼文件翻譯成機(jī)器語(yǔ)言,然后執(zhí)行相應(yīng)的操作。

常用名詞解釋

JDK: Java Development Kit, Java開(kāi)發(fā)框架, 開(kāi)發(fā)Java程序需要用到的各種工具包。

JRE: Java Runtime Envrioment, Java運(yùn)行時(shí)環(huán)境。

JVM: Java Virtual Mechine, Java虛擬機(jī), 能夠運(yùn)行Java程序

1.2.4 常用DOS命令

- cd: 切換到指定的路徑

- dir: 列舉當(dāng)前目錄下的所有文件和文件夾

- mkdir: 創(chuàng)建文件夾

- rmdir: 刪除文件夾

1.2.5 JDK的安裝與環(huán)境變量的配置

- JDK的安裝

  - 找到對(duì)應(yīng)的版本號(hào), 直接安裝即可

  - 安裝完成后, 在 jdk 的 bin 目錄下, 有編譯運(yùn)行Java程序所需要的指令

- 環(huán)境變量的配置

  - 為什么要配置環(huán)境變量

    - 因?yàn)槲覀冃枰褂胋in目錄下的javac和java指令來(lái)編譯和運(yùn)行程序, 而使用這兩個(gè)程序的話, 就需要先用cd切到指定路徑下才能執(zhí)行, 并且參數(shù)需要寫(xiě)java文件所在的目錄, 因此在編譯和運(yùn)行程序的時(shí)候非常不方便。因此需要將bin目錄添加到環(huán)境變量, 這樣我們就可以在任意的路徑下使用javac和java指令,來(lái)對(duì)我們的程序進(jìn)行編譯和運(yùn)行。

  - 怎么配置環(huán)境變量

    - 我的電腦 -> 右鍵 -> 屬性 -> 高級(jí)系統(tǒng)設(shè)置 -> 環(huán)境變量 

    - 選擇系統(tǒng)變量 -> Path -> 編輯

      - win10: 新建一個(gè)變量,將jdk下面的bin目錄粘貼進(jìn)去,并上移到最上方

      - win7/8: 將jdk下面的bin目錄的路徑粘貼到所有路徑的最前方,然后添加一個(gè)路徑分隔符;

  - 怎么驗(yàn)證環(huán)境變量是否配置成功

    - 新建一個(gè)DOS窗口, 輸入指令 javac, 如果沒(méi)有錯(cuò)誤提示就是是成功

1.2.6 注釋

注釋是對(duì)代碼的描述, 是開(kāi)發(fā)者寫(xiě)給自己或者別人看的, 相當(dāng)于我們記錄的一些筆記, 或者備忘錄。 注釋部分的內(nèi)容不會(huì)被編譯, 因此沒(méi)有語(yǔ)法上的要求。

注釋可以分為三類(lèi):

- 單行注釋: 以兩個(gè) // 開(kāi)頭, 后面的一行內(nèi)容會(huì)被注釋

- 多行注釋: 以一個(gè) /* 開(kāi)頭, 以一個(gè) */ 結(jié)尾。中間所有的內(nèi)容都會(huì)被注釋

- 文檔注釋: 以 /** 開(kāi)頭, */ 結(jié)尾。文檔注釋中可以添加一些標(biāo)簽,更方便的記錄程序的信息

1.2.7 數(shù)據(jù)類(lèi)型

在程序中, 我們需要操作各種各樣的數(shù)據(jù), 這些數(shù)據(jù)都有各自不同的類(lèi)型。

Java中, 所有的數(shù)據(jù)可以分為兩大類(lèi): 基本數(shù)據(jù)類(lèi)型引用數(shù)據(jù)類(lèi)型

引用數(shù)據(jù)類(lèi)型, 又叫做引用類(lèi)型。在后面課程中具體說(shuō)明。

基本數(shù)據(jù)類(lèi)型, 又叫做值類(lèi)型, 在Java中有以下分類(lèi):

- 整型

  - 就是整數(shù), 按照占用空間大小, 分為四種

  - 字節(jié)型: byte, 1byte, [-128, 127]

  - 短整型: short, 2byte, [-2^15^, 2^15^-1]

  - 整型: int, 4byte, [-2^31^, 2^31^-1]

  - 長(zhǎng)整型: long, 8byte, [-2^63^, 2^63^-1]

- 浮點(diǎn)型

  - 就是小數(shù), 按照占用空間大小, 分為兩種

  - 單精度浮點(diǎn)型: float, 4byte

  - 雙精度浮點(diǎn)型: double, 8byte

  - 雙精度浮點(diǎn)型可以比單精度浮點(diǎn)型精確更多的小數(shù)點(diǎn)后面的位數(shù)

- 布爾型

  - 用來(lái)描述程序中不是對(duì)的就是錯(cuò)的, 不是真的就是假的數(shù)據(jù)

  - boolean, 1byte

  - 只有兩個(gè)值: true / false

- 字符型

  - 用來(lái)描述組成一個(gè)文本的最小單元

  - char, 2byte

  - 字符型的數(shù)據(jù), 需要用單引號(hào)括起來(lái), 單引號(hào)中只能有一個(gè)字符, 不能多也不能少

1.2.8 標(biāo)識(shí)符

由若干個(gè)字符組成的一個(gè)有序的序列, 用來(lái)描述程序中的一個(gè)數(shù)據(jù)

命名規(guī)則

- 只能由字母、數(shù)字、下劃線和$符號(hào)組成

- 不能以數(shù)字作為開(kāi)頭

- 不能與關(guān)鍵字和保留字同名

  - 關(guān)鍵字: 系統(tǒng)占用的, 已經(jīng)被賦予了特殊含義的字符序列

  - 保留字: 系統(tǒng)占用的, 暫時(shí)還沒(méi)有特殊含義, 但是后續(xù)可能會(huì)用到的字符序列

命名規(guī)范

- 望文知意: 應(yīng)該可以從標(biāo)識(shí)符的命名中看出想表述的數(shù)據(jù)含義

- 遵循駝峰命名法

  - 大駝峰命名法: 所有的單詞首字母都大寫(xiě)

  - 小駝峰命名法: 首單詞除外, 從第二個(gè)單詞開(kāi)始, 每個(gè)單詞的首字母都大寫(xiě)

1.2.9 變量和常量

變量: 在程序運(yùn)行的過(guò)程中, 數(shù)值可以發(fā)生改變的數(shù)據(jù)

常量: 在程序運(yùn)行的過(guò)程中, 數(shù)值不可以發(fā)生改變的數(shù)據(jù)

在程序中的聲明

- 變量

  - 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符;

  - 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符 = 初始值;

  - 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符1, 標(biāo)識(shí)符2, ...;

  - 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符1 = 初始值, 標(biāo)識(shí)符2, 標(biāo)識(shí)符3 = 初始值, ...;

- 常量

  - final 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符 = 初始值;

  - final 數(shù)據(jù)類(lèi)型 標(biāo)識(shí)符; 標(biāo)識(shí)符 = 初始值;

  - Java允許在聲明常量的時(shí)候不賦值初始值, 可以延遲賦值。但是賦值只能進(jìn)行一次。

1.2.10 轉(zhuǎn)義字符

一個(gè)特殊的字符\, 主要有兩個(gè)作用

- 可以將某些具有特殊含義的字符轉(zhuǎn)成普通字符

  - 單引號(hào), 用來(lái)匹配一個(gè)字符的開(kāi)始和結(jié)尾, 轉(zhuǎn)義字符可以使其成為一個(gè)普通的單引號(hào)

  - 雙引號(hào), 用來(lái)匹配一個(gè)字符串的開(kāi)始和結(jié)尾, 轉(zhuǎn)義字符可以使其成為一個(gè)普通的雙引號(hào)

- 可以配合某些普通字符使用, 使其沒(méi)有特殊含義

  - n本身是一個(gè)普通字符, 配合轉(zhuǎn)義字符使用: \n 表示換行

  - t本身是一個(gè)普通字符, 配合轉(zhuǎn)義字符使用: \t 表示tab

  - r本身是一個(gè)普通字符, 配合轉(zhuǎn)義字符使用: \r 表示return

1.2.11 數(shù)據(jù)類(lèi)型轉(zhuǎn)換

一個(gè)變量聲明完成后, 在內(nèi)存中已經(jīng)開(kāi)辟好了空間, 此時(shí)是不允許調(diào)整空間大小的, 也就是說(shuō)這個(gè)變量的數(shù)據(jù)類(lèi)型是不允許改變的。這里說(shuō)的數(shù)據(jù)類(lèi)型轉(zhuǎn)換, 指的是聲明一個(gè)新的指定類(lèi)型的變量, 將原來(lái)變量中的值拷貝到新的變量中。

數(shù)據(jù)類(lèi)型轉(zhuǎn)換可以分為兩種:

自動(dòng)類(lèi)型轉(zhuǎn)換

  - 又叫做**隱式轉(zhuǎn)換**, 一般是由取值范圍小的數(shù)據(jù)類(lèi)型, 向取值范圍大的數(shù)據(jù)類(lèi)型轉(zhuǎn)換

  - 轉(zhuǎn)換過(guò)程不需要任何額外操作

  - 轉(zhuǎn)換后, 沒(méi)有任何精度丟失情況

強(qiáng)制類(lèi)型轉(zhuǎn)換

  - 又叫做**顯式轉(zhuǎn)換**, 一般是由取值范圍大的數(shù)據(jù)類(lèi)型, 向取值范圍小的數(shù)據(jù)類(lèi)型轉(zhuǎn)換

  - 轉(zhuǎn)換過(guò)程需要強(qiáng)制操作, 不能自動(dòng)完成

  - 轉(zhuǎn)換后, 可能會(huì)出現(xiàn)精度丟失的情況

java

byte a = 10;

int b = a;    // 由 byte 類(lèi)型轉(zhuǎn)型為 int 類(lèi)型, 自動(dòng)完成, 不需要任何額外操作

int c = 128;

byte d = (byte)c; // 由 int 類(lèi)型轉(zhuǎn)型為 byte 類(lèi)型, 強(qiáng)制操作, 會(huì)存在精度丟失

額外說(shuō)明

- byte, short, char 類(lèi)型的數(shù)據(jù)在進(jìn)行運(yùn)算的時(shí)候, 會(huì)自動(dòng)的轉(zhuǎn)型為int類(lèi)型

- 浮點(diǎn)型轉(zhuǎn)整型, 會(huì)舍去小數(shù)點(diǎn)后面所有的內(nèi)容, 只保留整數(shù)部分

1.2.12 常用運(yùn)算符

算術(shù)運(yùn)算符

用來(lái)做基礎(chǔ)的算術(shù)計(jì)算, + - * / % ++ --

其中: 

- \+ \- \* % 和數(shù)學(xué)計(jì)算中沒(méi)有區(qū)別

- 兩個(gè)整型的數(shù)據(jù)進(jìn)行除法, 結(jié)果還是整型, 會(huì)將計(jì)算的浮點(diǎn)結(jié)果強(qiáng)轉(zhuǎn)成整型

- 自增運(yùn)算符++, 用在變量前, 表示是前取變量值, 后對(duì)這個(gè)變量進(jìn)行+1操作

- 自增運(yùn)算符++, 用在變量后, 表示是先對(duì)這個(gè)變量進(jìn)行+1操作, 然后再取變量值

- 自減同自增

> int a = 10;

>

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

>

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

賦值運(yùn)算符

=: 將等號(hào)右邊的值, 給左邊的變量進(jìn)行賦值

+=, -=, *=, /=, %=: 組合運(yùn)算符, 對(duì)一個(gè)變量進(jìn)行運(yùn)算

> a += 10; 等價(jià)于 a = a + 10

關(guān)系運(yùn)算符

\> < >= <= == !=

邏輯運(yùn)算符

& : 與and

| : 或or

! : 非not

^ : 異或xor, 計(jì)算邏輯: 兩個(gè)相同為false, 兩個(gè)不同為true

&& : 

短路與, 結(jié)果與邏輯與相同. 區(qū)別在于: 如果前面的結(jié)果可以決定整體的運(yùn)算結(jié)果, 后面的表達(dá)式不參與運(yùn)算

|| :

短路或, 結(jié)果與邏輯或相同. 區(qū)別在于: 如果前面的結(jié)果可以決定整體的運(yùn)算結(jié)果, 后面的表達(dá)式不參與運(yùn)算

位運(yùn)算

位運(yùn)算操作的是兩個(gè)整型的數(shù)字, 計(jì)算的邏輯就是將兩個(gè)整型的數(shù)字求出補(bǔ)碼, 再對(duì)補(bǔ)碼的每一位做類(lèi)似于邏輯運(yùn)算的操作, 其中 1 相當(dāng)于 true, 0 相當(dāng)于 false

三目運(yùn)算符

condition ? expression1 : expression2

condition是一個(gè)boolean類(lèi)型的變量, 或者一個(gè)boolean結(jié)果的表達(dá)式. 如果condition為true, 最終整體的結(jié)果取expression1, 否則, 結(jié)果取expression2

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多