Java 基础 | 命名和运算
生活随笔
收集整理的這篇文章主要介紹了
Java 基础 | 命名和运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
接著之前的知識,今天主要回顧一下命名的一些規則和關于運算方面的基礎知識吧。 1. 駝峰命名法 類名/接口名:如果由多個單詞組成,那么每一個單詞的首字母大寫。(比如說,HelloWorkd) 變量名/方法名:如果由多個單詞組成,那么第一個單詞的首字母小寫,其余單詞的首字母大寫 playGame main 包名:如果由多個單詞組成,那么每一個單詞之間用 . 隔開,所有的字母都是小寫 cn.tedu.de 常量名:如果由多個單詞組成,那么每一個單詞之間用 _ 隔開,所有字母都是大寫 PLAY_GAME 2. 注釋 (用于解釋說明的文字) // 注釋文字? 單行注釋 /* 注釋文字*/? 多行注釋 /** 注釋文字/? 文檔注釋 --- 里面的注釋內容可以利用 javadoc 命令提取出來形成文檔(就是對程序的說明書)*會生成錯誤是因為配置環境變量時加入了 CLASSPATH,因為版本是 1.8 以上的了,所以可以刪掉。 ? ? ? ? ? ? 3. 字面量 (在計算機中不可改變的量) 整數常量:所有的整數(比如說 7、15、186、42) 小數常量:所有的小數(比如說 3.12、8.005、6.0) 字符常量:將一個字母、數字或者是符號用 ‘ ’標識起來(比如說 ‘a’、‘+’、 ‘5’、‘小’、‘ ’) 字符串常量:將一個或者多個字符用 " " 標識起來(比如說 "abc"、"+") 布爾常量:true/false --- 用于表示邏輯值 空常量:null
(計算機通過有電、沒電這樣的小開關來存放數據,只有0和1兩種狀態,是二進制存放) ? ? ? ? ?? 4. 進制 (是一種計數方式(分和秒是 60 進制,天是 24 進制,周是 7 進制,但是常用的是 10 進制,計算機是二進制)) 二進制:0-1,滿 2 進 1? 1+1=10? 11+1=100? 111+1=1000。在程序中以 0b/0B 開頭標記一個二進制數字(從 JDK1.7 開始) 0b1001? 0b00101 八進制:0-7,滿 8 進 1? 7+1=10? 27+1=30 77+1=100? 要求以 0 開頭標記一個八進制數字 十進制:0-9,滿 10 進 1? Java 中數字默認就是十進制 十六進制:0-9,A-F(不區分大小寫),滿 16 進 1? 9+1=a? a+1=b? f+1=10? 39+1=3a? 3f+1=40? 99+1=9a? 9f+1=a0? af+1=b0? af+1=b0? ff+1=100,要求以 0x/0X 作為開頭標記 4.1進制的轉換 十進制和二進制之間的轉換 十進制轉換為二進制:將這個十進制數字除以 2 ,從下依次向上倒取余數。 二進制轉換為十進制:從這個二進制數字的最低位次開始,依次乘以 2 的0、1、2、…… 次,最后求和。 ?十進制和其他進制之間的轉換 十進制轉化為其他進制:十進制數字向哪個進制轉化那么就除以對應的進制,然后取余數,將余數倒排。 其他進制轉化為十進制:從這個進制的數字的最低位次,然后按位次乘以當前的進制的位次次冪,最后求和? 0274=4*8^0+7*8^2=4+56+128=188 (一個面試題:16 * 5 = 150? ? (6 + n) * 5 = 5n + n^2,先設的是 n 進制,個位數是 6 ,那么進制肯定會大于或等于 6,于是前面可以表示為進制數相乘,后面可以用 10 進制轉換為 n 進制) 八進制和二進制之間的轉換 二進制轉八進制:八進制數字排列 --- 三變一(就是從后往前數,三個三個一組,不足位數就在前面添 0)(比如說? 001 101?010 = 0152? ? 001 010 111 011=01273 八進制轉化為二進制:05473 = 101100111011? 03517 = 11101100001111 十六進制和二進制之間的轉化:101100111011?= 0xb3b? 011101001111 = 0x74f 0xd2c=110100101100? (0到15的二進制數字背住) 擴展:十進制小數轉換為二進制 5.24 = 101.001111 0.24 * 2=0.48*2=0.96*2=1.92->0.92*2=1.84->0.84*2=1.68->0.68*2=1.36 0.72 1.44 0.88 0.76 絕大部分的小數轉化為二進制都是無限的 --- 所以計算機小數的時候會產生舍入誤差(存小數的時候會出現問題,比如 0.13=0.12999999999)
5.變量 (在程序中用于存儲數據的容器,) 定義格式:數據類型? 變量名 = 數據;int i = 5; 變量不能重名 變量必須先定義后使用 變量必須先給值后使用 變量必須在哪兒定義就在哪兒使用 擴展:計算機存儲單位 每一個二進制數字稱之為 1 位 --- bit -b 字節 - Byte - B 1B = 8b 千字節 - kilobyte - KB 1KB = 2^10B = 1024B 兆字節 - MB -> GB-> TB ->PB(帕比特)…… 8Mb = 1MB 100Mb = 12.5MB(MB 是你的網速,這就是為什么你的網速一直達不到 100MB 的原因) 3GB = 3000MB --- 在通信領域是按照千進制計算
(計算機通過有電、沒電這樣的小開關來存放數據,只有0和1兩種狀態,是二進制存放) ? ? ? ? ?? 4. 進制 (是一種計數方式(分和秒是 60 進制,天是 24 進制,周是 7 進制,但是常用的是 10 進制,計算機是二進制)) 二進制:0-1,滿 2 進 1? 1+1=10? 11+1=100? 111+1=1000。在程序中以 0b/0B 開頭標記一個二進制數字(從 JDK1.7 開始) 0b1001? 0b00101 八進制:0-7,滿 8 進 1? 7+1=10? 27+1=30 77+1=100? 要求以 0 開頭標記一個八進制數字 十進制:0-9,滿 10 進 1? Java 中數字默認就是十進制 十六進制:0-9,A-F(不區分大小寫),滿 16 進 1? 9+1=a? a+1=b? f+1=10? 39+1=3a? 3f+1=40? 99+1=9a? 9f+1=a0? af+1=b0? af+1=b0? ff+1=100,要求以 0x/0X 作為開頭標記 4.1進制的轉換 十進制和二進制之間的轉換 十進制轉換為二進制:將這個十進制數字除以 2 ,從下依次向上倒取余數。 二進制轉換為十進制:從這個二進制數字的最低位次開始,依次乘以 2 的0、1、2、…… 次,最后求和。 ?十進制和其他進制之間的轉換 十進制轉化為其他進制:十進制數字向哪個進制轉化那么就除以對應的進制,然后取余數,將余數倒排。 其他進制轉化為十進制:從這個進制的數字的最低位次,然后按位次乘以當前的進制的位次次冪,最后求和? 0274=4*8^0+7*8^2=4+56+128=188 (一個面試題:16 * 5 = 150? ? (6 + n) * 5 = 5n + n^2,先設的是 n 進制,個位數是 6 ,那么進制肯定會大于或等于 6,于是前面可以表示為進制數相乘,后面可以用 10 進制轉換為 n 進制) 八進制和二進制之間的轉換 二進制轉八進制:八進制數字排列 --- 三變一(就是從后往前數,三個三個一組,不足位數就在前面添 0)(比如說? 001 101?010 = 0152? ? 001 010 111 011=01273 八進制轉化為二進制:05473 = 101100111011? 03517 = 11101100001111 十六進制和二進制之間的轉化:101100111011?= 0xb3b? 011101001111 = 0x74f 0xd2c=110100101100? (0到15的二進制數字背住) 擴展:十進制小數轉換為二進制 5.24 = 101.001111 0.24 * 2=0.48*2=0.96*2=1.92->0.92*2=1.84->0.84*2=1.68->0.68*2=1.36 0.72 1.44 0.88 0.76 絕大部分的小數轉化為二進制都是無限的 --- 所以計算機小數的時候會產生舍入誤差(存小數的時候會出現問題,比如 0.13=0.12999999999)
5.變量 (在程序中用于存儲數據的容器,) 定義格式:數據類型? 變量名 = 數據;int i = 5; 變量不能重名 變量必須先定義后使用 變量必須先給值后使用 變量必須在哪兒定義就在哪兒使用 擴展:計算機存儲單位 每一個二進制數字稱之為 1 位 --- bit -b 字節 - Byte - B 1B = 8b 千字節 - kilobyte - KB 1KB = 2^10B = 1024B 兆字節 - MB -> GB-> TB ->PB(帕比特)…… 8Mb = 1MB 100Mb = 12.5MB(MB 是你的網速,這就是為什么你的網速一直達不到 100MB 的原因) 3GB = 3000MB --- 在通信領域是按照千進制計算
6. 數據類型 6.1基本數據類型 6.11數值型 整數型 byte -字節型 - 1個字節 - -27~27 -> -128~127 byte b=25; byte b2=127; byte b3 = -128; short - 短整型 - 2個字節 - -215~215-1 ->-32768~32767 short s = 800; short s2 = 1500; int - 整型 - 4 個字節 - -231~231-1 ->? -2.1*109~2.1*109 - Java 中,整數默認為 int 類型 int i = 6;? int k=5_482_637(當表示一個比較大的整數的時候,可以使用 _ 進行分類,這種寫法是從 JDK1.7 出現的) 5 482 637? long - 長整型 - 8個字節 - 263~263-1 -> -1018~1018,需要以 L/l 作為結尾標記 long l=54L; 浮點型 float - 單精度 - 4 個字節 -> -1038~1038? ---? 需要以 f/F 作為結尾 float f=5.87f;? float f=3.87F; double - 雙精度 - 8 個字節 ->-10308~10308? Java 中小數默認為 double 類型 - 小數結尾可以添加 D/d 作為標記。 double d = 4.5; double d2=2.58; double d3=9.54D; char - 字符型 - 2 個字節 -> 0~65535,使用的是utf-16 char c = 'a';? char c2 = '\ua4f3'(表示用 uft-16 的編碼形式來定義的)? char c3 ='中';? 7. 轉義字符 \t-制表符 table? \r-回車 return? \n-換行 next (打字機上回車把針頭挪回開始位置,換行才是挪回到下一行) \\-反斜杠 \? \'-單引號 '? \"-雙引號; 擴展:將字符轉換為數字的過程稱之為編碼 --- 編碼表 ISO - 8859 -1 - 西歐碼表 - 1個字節表示 1 個字符 a (美 回 區) gb2312 - 國標碼 - gbk - 2 個字節表示 1 個字符 - 收錄了常見的簡體漢字以及一部分常見的繁體漢字 Unicode 編碼體系 - 收錄了世界上常見語言的基本字符(像西夏文、原始部落的語言就不用收錄了,) --- 規定了一系列的編碼規則 - utf-8 -> 3個字節表示一個字符 utf-16 ->2個字節表示一個字符(java 用的) 注意:規定無論哪張碼表兼容西歐碼表 k 1 1 1 1 1 (英文不區分碼表) 區 X 2 3 2(漢字要區分碼表) boolean -?布爾型 -true/false,用于表示邏輯值(內存隨著操作系統、JDK 版本在變化,) boolean b = true;? boolean b2 = false; 6.2 引用數據類型 --- 數組 [] 類 class? 7.數據類型的轉換 7.1自動類型轉換/隱式轉換 byte b = 125; int i = b; 規律一:小的類型自動轉化為大的類型 short s=7; long l=s; long l=500; //500是一個整數,整數默認為 int,int 的范圍比 long 小,所以可以自動轉換 float f = 56.71F; double d = f; int i=300; double d=i; 規律二:整數類型可以自動轉化為浮點類型,可能會產生一個舍入誤差(1.23456794E9? xey 表示 x*10^y,而 ox3e5 才表示一個 16 進制) int i = 500; float f=i; // i 是 int 類型,int 的取值范圍比 float 小,所以 int 可以自動轉化為 float long l=259L; float f=l; float f=-25;// -25 是整數, char c='a'; int i=c; 規律三: 7.2強制類型轉換/顯示轉換 int i=135; byte b=(byte)i; 規律一:當把大的類型轉化為小的類型的時候,因為補碼的換算問題,所以可能會產生一個意想不到的結果 double d = 6.4; int i = (int)d; 規律二:小數在轉化為整數時要舍棄小數位。 擴展:數據的原反補三碼 數據類型的最高位是符號位 --- 如果最高位是 0,則表示一個正數,如果最高位是1,則表示一個負數。 計算機中存儲的是數據的補碼 直接計算出來的二進制數字是數據的原碼 int i=7; 00000000 00000000 00000000 00000111? 原碼 00000000 00000000 00000000 00000111? 反碼 00000000 00000000 00000000 00000111? 補碼 如果是負數,那么反碼是在原碼的基礎上,最高位不變,其余位 0<->1; 補碼是在反碼的基礎上 +1 int j=-9; 10000000 00000000 00000000 00001001? 原碼 11111111 11111111 11111111 11110110? 反碼 11111111 11111111 11111111 11110111? 補碼 byte b = -18; 原碼:10010010 反碼:11101101 補碼:11101110(計算機中存放的就是這個,補碼) int i = 135; byte b = (byte)i; 00000000 00000000 00000000 10000111 10000111 補碼(計算機中存放的是這個,補碼) 10000110 反碼 11111001 原碼(1+8+16+32+64=121 -> -121,顯示出來的是這個) 注意:規定用 -0 表示當前類型的最小值? ? 1000 0000 --- -128(原反補都是相同的)0000 0000 --- 0 byte b = 126; +1 = 127 + 1 = -128? ? 8. 運算符 8.1算數運算符 (+ - * / % ++ --) 注意: 1.byte/short/char 在運算時自動提升為?byte b1 = 5;? byte b2 = 7;? byte b = b1+b2;(是會報錯,因為后面是 int 型的,) 2.整型在運算的時候保持類型不變(比如說一個整型除以一個整型還是整型) 3.小類型和大類型運算,結果一定是大類型(比如說一個 int 型除以一個 double 型就是一個 double 型的) 4.任意整數/0 - ArithmeticException - 算術異常? 任意整數/0.0?任意非零小數/0 - Infinity - 無窮大 0/0.0? 0.0/0.0? 0.0/0 NaN - Not a Number - 非數字 % - 取模運算 - 取余運算 9 % 4 = 1 、3 % 8 = 3 -9 % 4 = -1 、 9 % -4 = 1 、 -9 % -4 = -1 % 的結果的正負看的是 % 左邊數據的正負 -> 如果左邊的數字是一個正數,那么結果就是正數;反之,那么結果就是負數 5%1.4=0.8 、 6.3 % 1.7? = 1.2 ++/-- 自增/自減運算 ++/--? 如果在變量之前,那么先自增/自減,然后參與后續運算 ++/-- 如果在變量之后,那么先參與運算,然后再自增/自減 int i= 6; int j=i++ + ++i; //輸出結果 i = 8 ,j = 14 byte/short/char? 都可以參與自增運算 char c = 'b' int c = c + 2; ->100 'a' ~'z' -> 97~122? ? ? 'A'~'Z' -> 65~90? ? ? '0' ~'9'-> 48~57 8.2賦值運算符 8.3關系運算符 8.4邏輯運算符 8.5位運算符 8.6三元運算符 關于 >> 和 >>> 的區別: https://blog.csdn.net/blog_szhao/article/details/23997881
轉載于:https://www.cnblogs.com/tangdiao/p/9403689.html
總結
以上是生活随笔為你收集整理的Java 基础 | 命名和运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 清理服务器网站日志
- 下一篇: Java Integer于Int 进行=