Java知識學習儲備

上午:
注意事項:
1。main方法是程序運行的入口
2。//表示註釋,不參與程序的運行
3。程序書寫規範,注意縮進




命名規則: 1.不能以數字開頭 2.不能和關鍵字重名
常量:整數,小數,字符串,字符,布爾,null
注意:1.null是一個常量.2.字符常量只能是單引號之間引一個字符,如果有兩個及兩個以上的字符無法通過編譯.




進制:
1.電腦中都是二進制
2.爲了表示方便,更短更簡單的表示數據,所以用三位合成一位來表示原數.因爲三位中最大的二進制是111,而111是7,是八進制中最大的基數,所以是相當於轉換成8進制
3.同樣的道理:如果每四位表示成1位,就相當於16進制度.
注意:計算機中存儲數據永遠是2進制的數據,之所以轉換成8進制或者16進制的數據,僅僅是爲了顯示方便,看起來更加簡單短小而已.


具體表示方法:
1.八進制的表示形式:在轉換後的數據前面加一個0,就表示八進制.比如:017的八進制就表示十進制的數字15
2.十六進制的表示形式:在轉換後的數據前面加一個0x,就表示十六進制,比如0x17的十六進制就表示十進制的數字23.


進制轉換:
1.大進制轉換成小進制.方法:原數據除以N取餘數,依次相除,直到商爲0,將餘數整理得到轉換後的數據
2.小進制轉換成大進制.方法:小數據的每一位數乘以相應的冪次方,依次相加.




負數的二進制形式:其正數的二進制形式取反再加1
比如:-6的二進制形式.
步驟:
1.找到6的二進制形式.
2.取反
3.加1  獲取結果


注意:一個整數佔4個字節.應該有32個二進制位.在取負數的二進制第一步取正數.要將32位中前面是0的那些也寫出來.




範圍: -2 (二進制位數-1) ----- 2(二進制位數-1)-1




基本數據類型:八種,自己總結
數據類型轉換:八種基本數據類型有級別高低之分.從低到高級別依次: byte,char,short -->int-->long -->float -->double


自動類型轉換:內部自動類型進行轉換,轉換原則是遵循最高級別.最終是級別最高的級別.
低級別到高級別的轉換是自動進行轉換.肯定是自動轉換.
高級別到低級別的轉換存在一個自動類型轉換.內部也有自動類型轉換.將高級別的轉換成對應的底級別的數據後再賦植給低級別的.需要注意的問題就是高級別的表示的數據必須在低級別的表示範圍之內的前提下.如果高級別的數據超出了低級別的表示數據的範圍,編譯失敗,無法通過。提示可能損失精度錯誤。如 byte a = 128;可能損失精度錯誤。需要進行強制類型轉換,下面給出例子。
byte c = 127;
              c = (byte)(c + 10);//由於右邊的10默認是int類型,所以c+10會自動轉換成高級的整數形,但是137已經超出了byte所能表示的數據的範圍。所以要進行人爲的強制類型轉換。最後結果是-119。理解並知道-119是如何得來的。

轉換原則:
     低級別到高級別一定自動轉換。統一轉換成高級別。
     高級別到低級轉換分兩種情況。1。數據在低級別的範圍內,自動砍掉前綴向低級別轉換。2。數據超出低級別的數據範圍,需要現實的進行數據類型轉換,然後進行運算操作。
      轉換的過程中伴隨着編碼的問題。字符和數字的編碼一一對應。



下午:
轉義字符:通過'\'來改變其後邊所跟字符的含義。
常用的轉義字符:
      windows下的換行:\r\n
      Linux,Nunix下的換行:\n
      製表符:\t


字符串:
     字符串和任何類型的數據相連接,最後都是字符串。
如:int num = 5;  "haha"+num+num ;輸出結果:haha55;  此處的“+”號僅僅是連接兩個部分的作用。


+號的幾種不同情況下的意義。


算術運算符: + - * / % ++ --    (Demo8例子弄明白)
賦植運算符: = += -+ *= /=    (Demo8例子中說的編譯失敗和編譯通過的兩種情況)
位運算符:尖朝哪就往哪移      (Demo9的例子弄明白,ppt上的課件。)


左移:
有符號右移:
無符號右移:
自習時間重點理解,消化。


程序流程控制:判斷語句,循環語句,選擇結構
判斷語句需要注意的地方:
1、if、else條件語句後面如果要執行多於一條的語句,則必須用大花括號將要執行的多條語句進行包圍。默認情況下,只執行if、else後面隨着跟的一句話。
2、關於if和else的對應問題。當if和else出現很多次的情況時,必須明確的判斷else和其對應的if的配對問題。
3、多個單個的if語句的情況,會進行逐個判斷。也就是說的多次判斷。
4、關於多重條件的判斷結構,只可能執行其中一種。if()else if()else()。。用於多重條件的判斷。這種情況下,程序會只執行一個符合條件的條件。多重條件整體結構出現時,只會執行滿足條件的第一次的情況下的語句。其他不再執行。


選擇結構:switch結構。語法自己默唸複習。
選擇結構需要注意的問題:
1、case和default各種情況執行代碼後的break。break的作用就是讓程序停止向下執行,否則會繼續向下執行,直到遇到break,或者右花括號。
2、讓switch停止執行只有兩種可能。要麼是遇到break語句,要麼是遇到switch的右大花括號。
3、switch使用有些侷限。case後面跟的情況只能是某個具體的值。比較僵硬。
4、執行過程。switch讀取提條件,然後依次判斷case,找到則執行case相應的代碼,找不到去執行default。記住:先判斷case,找不到纔會default,和default寫在哪沒有關係。見Demo12奇葩例子。


總結:選擇if和switch的情況?
1、如果表達式的值是boolean類型或者是某一個範圍區間中的值得時候,選擇if判斷語句結構。原因:boolean類型情況只能使用if語句,區間中的值是一個範圍,涉及多個不確定的值,只是滿足的一種條件,所以就選擇if語句
2、如果表達式的值是一個固定的值且是byte,char,short,int,jdk1.5(枚舉),jdk1.7(字符串)的情況時使用switch。


循環結構:1.for  2.while    3.do.. while   語法自己默唸複習。
循環結構需要注意的問題:
1、do...while   和 while 兩種循環的區別:while是先判斷,再執行。do...while 是先執行一次,然後進行條件判斷。也就是說do...while至少會執行一次;而while則會根據判斷的結果確定是否執行循環體。
2、for循環結構的執行過程。第一步,執行起始條件;第二步,執行for循環內的條件判斷;第三步,執行循環體;第四步,執行循環後的操作表達式語句。
3、for循環往往在括號內定義標誌變量。while循環往往是全局變量。這兩種情況涉及一個問題,變量的作用域的問題。變量都是有作用範圍的,這個作用範圍是從該變量被定義的位置開始,到其所在的大括號結束。   ----一句話:變量是有作用範圍的。往往使用for循環,因爲可以節省內存,提高效率。





發佈了51 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章