20145206 《Java程序設計》第2周學習總結
教材學習內容總結
一、類型
- Java可區分為基本類型和類類型兩大類型系統,其中,類類型也稱為參考類型。
- 在Java中的基本類型主要可區分為整數、字節、浮點數、字符與布爾。整數:可細分為short 整數(占兩字節)、int 整數(占4字節)與long整數(占8字節);字節:byte類型顧名思義,長度就是一字節,若用於表示整數,byte可表示-128~127的整數;浮點數:主要用來儲存小數數值,可分為float浮點數(占4字節)與double浮點數(占8字節);字符:每個字符類型占2字節,漢字字符與英文字符在Java中同樣都是用雙字節儲存;布爾:boolean類型可表示true與false,分別代表邏輯的“真”與“假”
- 批注問題:單行批注“//”;多行批注“/”與“/”。
- System.out.println(),這會在標准輸出中顯示文字后換行,如果使用System.out.print()則輸出文字后不會換行,其中f就是format的意思,也就是格式化。
二、變量
- 基本規則:變量在命名時有一些規則,它不可以使用數字作為開頭,也不可以使用一些特殊字符;而變量名稱不可以與Java的關鍵字同名,也不可以與Java保留字同名;命名習慣,通常會以小寫字母開始,並在每個單字開始時第一個字母使用大寫,這種命名方法稱為駝峰式命名法。在Java中,不可以聲明局部變量后未指定任何值給它之前就使用變量;如果在指定變量值之后,就不想再改變變量值,可以在聲明變量時加上final限定。
- 字面變量:在Java中寫下一個值,該值稱為字面常數;要表示字符的話,必須使用“'”符號括住字符。
- 數字常量表示法:有時候,想要以二進制方式表示某個值,則可以用0b作為開頭。
三、運算符
- 算數運算:“+、-、*、/”;模數運算符:%;算數運算符使用上與學過的加減乘除一樣,也是先乘除后加減。
- 比較、條件運算:“>、>=、<、<=、==、!=",比較條件成立時以boolean類型true表示,比較條件不成立時以false表示。條件運算符:條件式?成立返回值:失敗返回值。
- 邏輯運算:“&&、||、!”&&與||有所謂快捷方式運算:只要左操作數評估為false,就會直接返回false,對||來說,只要左操作數評估為true,就會直接返回true,就不會再去運算右操作數。
- 位運算:“&、|、^、~”“<<、>>"左移被擠出去的位會被丟棄,右邊補0;右移被擠出去的位會被丟棄,如果左邊原來是什么就補什么;“>>>”這個運算符在右移后,最左邊一定補0.
- 遞增、遞減運算:將++或——寫在變量前,表示先將變量值加或減一,再返回變量值;將++或--寫在變量后,表示先返回變量值再對變量加或減一。
- 指定運算:“+=、-=、*=、/=、%=、&=、|=、^=、<<=、>>="
四、類型轉換
整數中默認類型為int型;小數中默認類型為double型;如果表達式中包括不同類型數值,則運算時以長度最長的類型為主,其他數值自動提升類型。
五、if...else條件式、switch條件式、for循環、while循環、break、continue
這一部分在C語言學習時就已經了解,在這里只總結一下自認為不太熟悉的知識點。
switch在效率上比if...else要好;for循環中,在一個描述區塊中若想寫兩個以上的描述語句,則使用逗號做分隔;do...while:后測試循環;break與continue還可以配合標簽使用。
教材學習中的問題和解決過程
問題一:在視頻學習中,發現有這樣一段代碼:System.out.println(60);運行結果是打印出60這個數字,於是產生困惑,為什么不用加雙引號呢?就像System.out.println(“Hello World"); 解決過程:問了一些同學,但現在還沒有明確的解釋。
問題二:byte b=2;這個賦值語句,2默認為int型,按理來說不能賦值給byte型啊,這樣會丟失精度的。 解決過程:看了視頻,覺得了解一些,但對類型轉換這方面還是有些不熟練,需要繼續鞏固。
代碼調試中的問題和解決過程
在IDE中進行書上代碼調試:
代碼一:
代碼二:
代碼三:
總結:其中第三個代碼要特別注意空格問題,之前由於沒有注意這個問題導致運行了很多次,出現的效果都連在一起,無法分辨每一個的結果,后來經過調整成功了。
其他(感悟、思考等,可選)
本章的學習感覺雖然知識點較多,比較瑣碎,但內容還是比較簡單的,很多知識在學習C語言時就已經掌握了,比起第一二章抽象的東西覺得第三章比較容易理解,但還是有一些小的知識點理解的不夠透徹,比如說類型轉換,比如說break與continue還可以配合標簽使用,還需要多花時間在這上面,畢竟本章的內容是基礎,學好基本語法才能在以后的學習中不吃力。
課后練習題:
操作題1:
public class Zuida { public static void main(String[] args) { int m=1000,n=495,i; for(i=n;i>=1;i--) { if(m%i==0&&n%i==0) break; } System.out.println(i); } }
運行結果:
操作題2:
public class amu { public static void main(String[] args) { int i,m,n,p,q,w; for(i=100;i<=999;i++) { m = i % 10; n = (i - m) % 100; p = (i - m - n) % 1000; q=n/10; w=p/100; if (m * m * m + q*q*q + w*w*w == i) System.out.println(i); } } }
運行結果:
總結:第一個操作題因為在C語言時就已經練習編寫過,所以容易一些;在進行第二個操作題時,在分離百位、十位、個位時出錯,導致運行不出結果,后來經過修改成功執行。
托管代碼:
學習進度條
| 代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
|---|---|---|---|---|
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一周 | 100/100 | 1/2 | 10/15 | 編譯helloworld程序 |
| 第二周 | 100/200 | 2/4 | 15/30 | 會使用IDE並成功運行代碼 |
