1.2.1 計算機理論介紹 1.2.2 編程基礎(chǔ)--進制分類、進制轉(zhuǎn)換 進制 就是進位制。指的是我們來表示一個數(shù)字的時候進位的制度。 進制分類 計算機中,常用的進制有以下幾種: | 進制 | 描述 | 示例 | 備注 | | -------- | ------------------------------ | ----------------------- | ------------ | | 二進制 | 使用0和1來描述所有的自然數(shù) | 0, 1, 10, 11, 100, 101 | 使用`0b`開頭 | | 八進制 | 使用0-7來描述所有的自然數(shù) | 4, 5, 6, 7, 10, 11, 12 | 使用`0`開頭 | | 十進制 | 使用0-9來描述所有的自然數(shù) | 6, 7, 8, 9, 10, 11, 12 | | | 十六進制 | 使用0-9, a-f來描述所有的自然數(shù) | 9, A, B, C, D, E, F, 10 | 使用`0x`開頭 | 進制轉(zhuǎn)換 - 十進制轉(zhuǎn)其他進制 - 輾轉(zhuǎn)相除法,用數(shù)字除進制,再用商除進制,一直到商為零結(jié)束,最后將每一步得到的余數(shù)倒著連接 - 其他進制轉(zhuǎn)十進制 - 每一位的數(shù)字乘進制的位數(shù)-1次方,再將所有的結(jié)果累加到一起 - 二進制與八進制之間的相互轉(zhuǎn)換 - 每一個八進制位可以等價替換成三個二進制位 - 每一個十六進制位可以等價替換成四個二進制位 原碼、反碼、補碼 | | 正數(shù) | 負數(shù) | | ---- | -------------------------------- | -------------------------------------- | | 原碼 | 由數(shù)字直接計算出的二進制表示形式 | 最高位表示符號位: 0代表正數(shù), 1代表負數(shù) | | 反碼 | 與原碼相同 | 符號位不變, 其他位按位取反 | | 補碼 | 與原碼、反碼相同 | 反碼 + 1 | 注意事項: - 數(shù)據(jù)的存儲與運算都是以補碼的形式進行的 - 補碼與補碼運算的結(jié)果還是補碼 - 對補碼再求一次補, 可以得到原碼 1.2.3 什么是Java Java是一種面向?qū)ο蟮某绦蛟O(shè)計語言,可以使用這種語言編寫程序,實現(xiàn)我們想要的一些功能。主要分三塊: J2SE: Java的標準版,用于標準的應(yīng)用程序開發(fā)。 J2ME: Java的微型版,常用于移動端的開發(fā)。 J2EE: Java的企業(yè)版,用于企業(yè)級的應(yīng)用服務(wù)開發(fā)。 Java程序的運行,需要先將.java源文件編譯成.class字節(jié)碼文件,然后由jvm虛擬機將這些字節(jié)碼文件翻譯成機器語言,然后執(zhí)行相應(yīng)的操作。 常用名詞解釋 JDK: Java Development Kit, Java開發(fā)框架, 開發(fā)Java程序需要用到的各種工具包。 JRE: Java Runtime Envrioment, Java運行時環(huán)境。 JVM: Java Virtual Mechine, Java虛擬機, 能夠運行Java程序 1.2.4 常用DOS命令 - cd: 切換到指定的路徑 - dir: 列舉當前目錄下的所有文件和文件夾 - mkdir: 創(chuàng)建文件夾 - rmdir: 刪除文件夾 1.2.5 JDK的安裝與環(huán)境變量的配置 - JDK的安裝 - 找到對應(yīng)的版本號, 直接安裝即可 - 安裝完成后, 在 jdk 的 bin 目錄下, 有編譯運行Java程序所需要的指令 - 環(huán)境變量的配置 - 為什么要配置環(huán)境變量 - 因為我們需要使用bin目錄下的javac和java指令來編譯和運行程序, 而使用這兩個程序的話, 就需要先用cd切到指定路徑下才能執(zhí)行, 并且參數(shù)需要寫java文件所在的目錄, 因此在編譯和運行程序的時候非常不方便。因此需要將bin目錄添加到環(huán)境變量, 這樣我們就可以在任意的路徑下使用javac和java指令,來對我們的程序進行編譯和運行。 - 怎么配置環(huán)境變量 - 我的電腦 -> 右鍵 -> 屬性 -> 高級系統(tǒng)設(shè)置 -> 環(huán)境變量 - 選擇系統(tǒng)變量 -> Path -> 編輯 - win10: 新建一個變量,將jdk下面的bin目錄粘貼進去,并上移到最上方 - win7/8: 將jdk下面的bin目錄的路徑粘貼到所有路徑的最前方,然后添加一個路徑分隔符; - 怎么驗證環(huán)境變量是否配置成功 - 新建一個DOS窗口, 輸入指令 javac, 如果沒有錯誤提示就是是成功 1.2.6 注釋 注釋是對代碼的描述, 是開發(fā)者寫給自己或者別人看的, 相當于我們記錄的一些筆記, 或者備忘錄。 注釋部分的內(nèi)容不會被編譯, 因此沒有語法上的要求。 注釋可以分為三類: - 單行注釋: 以兩個 // 開頭, 后面的一行內(nèi)容會被注釋 - 多行注釋: 以一個 /* 開頭, 以一個 */ 結(jié)尾。中間所有的內(nèi)容都會被注釋 - 文檔注釋: 以 /** 開頭, */ 結(jié)尾。文檔注釋中可以添加一些標簽,更方便的記錄程序的信息 1.2.7 數(shù)據(jù)類型 在程序中, 我們需要操作各種各樣的數(shù)據(jù), 這些數(shù)據(jù)都有各自不同的類型。 Java中, 所有的數(shù)據(jù)可以分為兩大類: 基本數(shù)據(jù)類型和引用數(shù)據(jù)類型 引用數(shù)據(jù)類型, 又叫做引用類型。在后面課程中具體說明。 基本數(shù)據(jù)類型, 又叫做值類型, 在Java中有以下分類: - 整型 - 就是整數(shù), 按照占用空間大小, 分為四種 - 字節(jié)型: 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] - 浮點型 - 就是小數(shù), 按照占用空間大小, 分為兩種 - 單精度浮點型: float, 4byte - 雙精度浮點型: double, 8byte - 雙精度浮點型可以比單精度浮點型精確更多的小數(shù)點后面的位數(shù) - 布爾型 - 用來描述程序中不是對的就是錯的, 不是真的就是假的數(shù)據(jù) - boolean, 1byte - 只有兩個值: true / false - 字符型 - 用來描述組成一個文本的最小單元 - char, 2byte - 字符型的數(shù)據(jù), 需要用單引號括起來, 單引號中只能有一個字符, 不能多也不能少 1.2.8 標識符 由若干個字符組成的一個有序的序列, 用來描述程序中的一個數(shù)據(jù) 命名規(guī)則 - 只能由字母、數(shù)字、下劃線和$符號組成 - 不能以數(shù)字作為開頭 - 不能與關(guān)鍵字和保留字同名 - 關(guān)鍵字: 系統(tǒng)占用的, 已經(jīng)被賦予了特殊含義的字符序列 - 保留字: 系統(tǒng)占用的, 暫時還沒有特殊含義, 但是后續(xù)可能會用到的字符序列 命名規(guī)范 - 望文知意: 應(yīng)該可以從標識符的命名中看出想表述的數(shù)據(jù)含義 - 遵循駝峰命名法 - 大駝峰命名法: 所有的單詞首字母都大寫 - 小駝峰命名法: 首單詞除外, 從第二個單詞開始, 每個單詞的首字母都大寫 1.2.9 變量和常量 變量: 在程序運行的過程中, 數(shù)值可以發(fā)生改變的數(shù)據(jù) 常量: 在程序運行的過程中, 數(shù)值不可以發(fā)生改變的數(shù)據(jù) 在程序中的聲明 - 變量 - 數(shù)據(jù)類型 標識符; - 數(shù)據(jù)類型 標識符 = 初始值; - 數(shù)據(jù)類型 標識符1, 標識符2, ...; - 數(shù)據(jù)類型 標識符1 = 初始值, 標識符2, 標識符3 = 初始值, ...; - 常量 - final 數(shù)據(jù)類型 標識符 = 初始值; - final 數(shù)據(jù)類型 標識符; 標識符 = 初始值; - Java允許在聲明常量的時候不賦值初始值, 可以延遲賦值。但是賦值只能進行一次。 1.2.10 轉(zhuǎn)義字符 一個特殊的字符\, 主要有兩個作用 - 可以將某些具有特殊含義的字符轉(zhuǎn)成普通字符 - 單引號, 用來匹配一個字符的開始和結(jié)尾, 轉(zhuǎn)義字符可以使其成為一個普通的單引號 - 雙引號, 用來匹配一個字符串的開始和結(jié)尾, 轉(zhuǎn)義字符可以使其成為一個普通的雙引號 - 可以配合某些普通字符使用, 使其沒有特殊含義 - n本身是一個普通字符, 配合轉(zhuǎn)義字符使用: \n 表示換行 - t本身是一個普通字符, 配合轉(zhuǎn)義字符使用: \t 表示tab - r本身是一個普通字符, 配合轉(zhuǎn)義字符使用: \r 表示return 1.2.11 數(shù)據(jù)類型轉(zhuǎn)換 一個變量聲明完成后, 在內(nèi)存中已經(jīng)開辟好了空間, 此時是不允許調(diào)整空間大小的, 也就是說這個變量的數(shù)據(jù)類型是不允許改變的。這里說的數(shù)據(jù)類型轉(zhuǎn)換, 指的是聲明一個新的指定類型的變量, 將原來變量中的值拷貝到新的變量中。 數(shù)據(jù)類型轉(zhuǎn)換可以分為兩種: - 自動類型轉(zhuǎn)換 - 又叫做**隱式轉(zhuǎn)換**, 一般是由取值范圍小的數(shù)據(jù)類型, 向取值范圍大的數(shù)據(jù)類型轉(zhuǎn)換 - 轉(zhuǎn)換過程不需要任何額外操作 - 轉(zhuǎn)換后, 沒有任何精度丟失情況 - 強制類型轉(zhuǎn)換 - 又叫做**顯式轉(zhuǎn)換**, 一般是由取值范圍大的數(shù)據(jù)類型, 向取值范圍小的數(shù)據(jù)類型轉(zhuǎn)換 - 轉(zhuǎn)換過程需要強制操作, 不能自動完成 - 轉(zhuǎn)換后, 可能會出現(xiàn)精度丟失的情況 java byte a = 10; int b = a; // 由 byte 類型轉(zhuǎn)型為 int 類型, 自動完成, 不需要任何額外操作 int c = 128; byte d = (byte)c; // 由 int 類型轉(zhuǎn)型為 byte 類型, 強制操作, 會存在精度丟失 額外說明 - byte, short, char 類型的數(shù)據(jù)在進行運算的時候, 會自動的轉(zhuǎn)型為int類型 - 浮點型轉(zhuǎn)整型, 會舍去小數(shù)點后面所有的內(nèi)容, 只保留整數(shù)部分 1.2.12 常用運算符 算術(shù)運算符 用來做基礎(chǔ)的算術(shù)計算, + - * / % ++ -- 其中: - \+ \- \* % 和數(shù)學(xué)計算中沒有區(qū)別 - 兩個整型的數(shù)據(jù)進行除法, 結(jié)果還是整型, 會將計算的浮點結(jié)果強轉(zhuǎn)成整型 - 自增運算符++, 用在變量前, 表示是前取變量值, 后對這個變量進行+1操作 - 自增運算符++, 用在變量后, 表示是先對這個變量進行+1操作, 然后再取變量值 - 自減同自增 > int a = 10; > > int b = a++; // b的值是10 > > int c = ++b; // c的值是11 賦值運算符 =: 將等號右邊的值, 給左邊的變量進行賦值 +=, -=, *=, /=, %=: 組合運算符, 對一個變量進行運算 > a += 10; 等價于 a = a + 10 關(guān)系運算符 \> < >= <= == != 邏輯運算符 & : 與and | : 或or ! : 非not ^ : 異或xor, 計算邏輯: 兩個相同為false, 兩個不同為true && : 短路與, 結(jié)果與邏輯與相同. 區(qū)別在于: 如果前面的結(jié)果可以決定整體的運算結(jié)果, 后面的表達式不參與運算 || : 短路或, 結(jié)果與邏輯或相同. 區(qū)別在于: 如果前面的結(jié)果可以決定整體的運算結(jié)果, 后面的表達式不參與運算 位運算 位運算操作的是兩個整型的數(shù)字, 計算的邏輯就是將兩個整型的數(shù)字求出補碼, 再對補碼的每一位做類似于邏輯運算的操作, 其中 1 相當于 true, 0 相當于 false 三目運算符 condition ? expression1 : expression2 condition是一個boolean類型的變量, 或者一個boolean結(jié)果的表達式. 如果condition為true, 最終整體的結(jié)果取expression1, 否則, 結(jié)果取expression2 |
|