20145231 《Java程序設計》第2周學習總結
教材學習內容總結
本周的學習采用的依然是先看課本,再看視頻,然后實踐敲代碼,最后根據學習筆記總結完成博客。
第三章:基礎語法
知識點比較多比較零碎,整理的都是實際操作中可能會出錯的或是之前不太理解的。
1、1字節(byte)=8位(bit),1024字節=1kb,64位的操作系統代表字節是固定由八位二進制構成,字長為64位,每個字由八個字節構成;(思考:64位操作系統與32位操作系統在于構成字的字節數量不同,具體表現就是存儲空間不同)
2、負數的二進制表示:取反加一,最高位一定為一;
3、變量:將不確定的數據進行存儲;(在內存中開辟空間:名稱:變量名,空間類型:數據類型,數據)
4、輸入整數默認為int型,輸入小數默認為double型;
5、數據類型:基本數據類型和引用數據類型,其中前者又包括:數值型(byte、short、int、long、float、double)、字符型(char)、布爾型(boolean);
6、硬盤與CPU中緩存(緩沖存儲空間)越大,運算量越大,效率較高;
7、同一區間內(大括號)不能重復用同一變量名定義,應當在數據不確定,又需要對數據進行存儲時,定義變量;
8、運算過程中,不同類型之間不可進行運算,必要時可進行強制轉換,運算中出現多種數據類型時,以大為主,小向大提升,強制轉換時,可以去掉自動轉換時的多余部分,也可能丟失精度;
9、字符串數據和任何數據使用+都是表示相連接,最終都會變成字符串;
10、轉義字符:通過\來轉變后面字母或符號的含義:\n換行,\b退格,\r按下回車鍵,\t制表符,相當于tab鍵;
11、邏輯運算符:用于連接布爾類型表達式;
12、&&與&的區別:&&效率相對更高,當其左邊為假時即停止運算,同理||與|也一樣,其左邊為真即停止運算;
13、位運算:左移:移幾位就乘以2的幾次冪,右移:移幾位就除以2的幾次冪(帶符號右移,最高位補原來數據最高位值,若是>>>符號,最高位直接補0);
14、&、|、^也可以進行位運算(先轉換為二進制,按位運算后,再將二進制結果轉換為十進制);
15、一個數異或同一個數兩次結果還是原來的數;
16、利用右移可以進行進制轉換;
17、三元運算符:優點:可以簡化代碼;弊端:必須要給出結果(eg:用if語句可不顯示結果);
18、對比if語句和switch語句:值不多且滿足byte、int、short、char類型時可用switch語句適當提高效率,其他情況一般用if語句;
19、編寫代碼注重格式和規范化,在編寫代碼先注明需求、思路、解決步驟等;
20、char類型中寫中文是可以的,一個漢字為兩個字節,在范圍內。
教材學習中的問題和解決過程
問題一:
不理熟悉布爾類型表達式的輸出結果;
解決過程:
通過看書上邏輯運算部分理解了布爾類型表達式輸出只有兩種結果即:true、false,在Java語言中System.out.println(3>4)和System.out.printf("%b%n",3>4)顯示結果都是false即邏輯判斷的結果。
問題二:看視頻時思考的一個問題:用最有效率的方式計算2*8?
解決過程:要是直接計算的話需要轉換成二進制計算,2*8相當于2乘以2的三次方,即:2<<3,這樣就簡化了運算。
問題三:如何在不用第三個變量的情況下對兩個整數變量進行互換?
解決過程:定義兩個變量m、n,n=n+m;m=n-m;n=n-m;(eg:11=8+3;m=11-3;n=11-8;)
問題四:System.out.println("5+5="+5+5);//顯示"5+5=55",結果不是我們想要的怎么解決?
解決過程:System.out.println("5+5="+(5+5))//顯示"5+5=10",通過提高運算優先級來實現。
代碼調試中的問題和解決過程
首先,先是按照第一周的方法敲代碼并運行,然后下載安裝了IDEA,學習了簡單的使用方法,使得敲代碼及編譯過程變得容易。如圖:
然后對書上代碼進行了編譯,首次編譯出現了問題,原因是沒有定義SDK,后經設定SDK,可以成功編譯,且在代碼中含有println時,后面內容不能出現%n,否則就重復換行。大致操作及運行結果如圖:
重新理解了遞加遞減運算中++i和i++的區別,如圖:
通過打印九九乘法表了解了不同循環描述語句的寫法,同時第二種寫法可讀性不是很強,但相對簡練,利用了上一條知識點:++j與j++區別,結果如圖:
其他(感悟、思考等,可選)
且學且珍惜。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 21/41 | |
第三周 | 500/1000 | 0/0 | 00/00 | |
第四周 | 300/1300 | 0/0 | 00/00 |
參考資料
- Java學習筆記(第8版)
《Java學習筆記(第8版)》學習指導
[畢向東Java基礎教程視頻]