教材學習內容總結
本周我對教材第三章進行了學習,第三章對Java語言的語句、語法、類型、變量的定義等內容進行了比較詳細的說明,相比之前的第一章和第二章,我覺得這一章還是比較好理解的,比較容易被接受。Java的基礎語法跟C語言的語法有些相似,但又有不同之處,因為以前學過C語言,對於C語言的語法還有印象,所以這一章學起來總體來說還是比較輕松的,下面是我對本周學習內容的總結:
1.類型
•Java共分為兩大類型:基本類型、類類型。
•基本類型:整數、字節、浮點數、字符、布爾。
整數:short整數(2字節)、int整數(4字節)、long整數(8字節)
字節:byte(1字節)(可表示-128~127的整數)
浮點數:主要用來儲存小數數值,分為float浮點數(4字節)、double浮點數(8字節)
字符:char,儲存字符符號,每個字符類型占2字節
布爾:boolean類型可表示true與false
2.批注
“//”單行批注
“/”、“/”多行批注
3.常用格式控制符號
Java語言的常用格式控制符號有一部分和C語言一樣,在這里我總結了一些和C語言不同的以及我不太熟悉的符號:
•%e(%E):提供的數必須是float、double、Flaot、Double,%e表示輸出格式遇到字母以小寫表示,5E表示遇到字母以大寫表示
•%s(%S):字符串格式
•%b(%B):%b表示輸出結果是true或false,%B表示輸出結果是TRUE或FALSE
•%n:換行符號
4.變量
•駝峰式命名法:給變量命名時,以小寫字母開始,在每個單字開始時第一個字母使用大寫
•要表示字符的話,必須使用“‘”符號括住字符,一對單引號里只能包括一個字符
•數字不可以開頭
•不可以使用關鍵字
•嚴格區分大小寫
•十六進制表示常量:以0x開頭
•八進制表示常量:以0開頭
5.運算符
•條件運算符:條件值?成立返回值:失敗返回值
如果條件式結果為,則返回“:”前面的值,如果條件式結果為假,則返回“:”后面的值
•位運算:“~”為補碼運算,將所有0變1,1變0
“<<”左移:將所有位往左移動指定位數,左邊被擠出去的位會被丟棄,在右邊補0
“>>”右移:將所有位往右移動指定位數,右邊被擠出去的位會被丟棄,左邊補上原來的位
“>>>”往右移后,最左邊一定補0
6.遞增、遞減運算
•++i與i++的區別:
++i:例如:number=++i; //相當於 i=i+1; number=i;
i++:例如:number=i++; //相當於 number=i; i=i+1;
記憶法:++i,加號在前面,就先加一再返回變量值
i++,加號在后面,就先返回變量值再加一
7.類型轉換
•輸入的字符一定要不超過變量類型的長度
•有時編譯程序會默認輸入字符的變量類型,如果需指定類型變量,有兩種辦法:
第一種:在字符后面加上指定類型變量的大寫首字母(例如: float PI = 3.14F)
第二種:在字符前加上指定的類型變量,並用括號括起來(例如: float PI = (float)3.14)
•如果表達式中包括不同類型的數值,則運算時以長度最長的的類型為主,其他數值將自動提升類型
•在哪種類型變量里面進行計算,結果就會是哪種類型變量(例如:System.out.println(10/3); 在int長度的空間中進行運算的答案為3,在double長度的空間里進行運算,結果為3.33)
8.流程控制
•if...else條件式:如果條件式不成立並不想做任何事,則else可以省略
•if...else if
•switch條件式:每個case語句后面都要加上“brak;”,最后面可加“default”,但若沒有默認要處理的動作,可以省略"default"
若case中沒有任何描述,也沒有使用break,就繼續往下面的語句執行,直到遇到break離開switch為止
•foe循環:for(初始式;執行結果必須是boolean的重復式;重復式) 在一個描述區塊中若想寫兩個以上的描述句,則使用逗號“,”作分隔
•while循環:循環進行前就進行條件判斷
•do...while循環:先執行動作,再判斷是否需要重復
9.break與continue
•break可以離開當前switch、for、while、do...while的區塊,並執行區塊后下一個描述句,在switch中主要用來中斷下一個case比較,在for、while、do...while中,主要用於中斷當前循環
•continue與break類似,不過使用於循環,break會結束區塊執行,而continue會略過之后的描述句,並回到循環區塊開頭進行下一次循環,而不是離開循環
•標簽:以back為例,當break back;時,返回至back標簽處,之后整個back區塊不執行而跳過,對於continue,標簽只能設在for之前
教材學習中的問題和解決過程
問題1:
教材62頁的代碼
教材中說會分別輸出true、false、true,但是語句里並沒有格式控制符號%b,為什么會輸出true和false?
解決:
邏輯運算符有返回值,返回為布爾型,因為代碼中用的是println,printfln輸出自動換行,里面不需要加輸出格式可自動返回返回值,但是如果用printf的話就需要加上輸出格式了。
問題2:
對於教材75頁的乘法表不是很理解
解決:
通過看教材以及和同學討論,我理清了這個代碼的思路:i從2開始,j從1開始,判斷i是否等於9,若i不等於9,就執行“:”后面的語句,i加一,此時j不變,不換行;若i等於9,則執行“:”前面的語句,語句里面是++j/j,實現了j的自加,同時,j是先自加再返回j值,所以++j/j一直等於1,再加1以后等於2,就把新值2賦給i,根據輸出語句,此時換行,再進行剛才的循環,實現了九九乘法表
代碼調試中的問題和解決過程
代碼都是按照書上的代碼進行練習的,沒有出現大的問題,在編譯運行的時候只出現了一些細節性的小問題,類似於名稱打錯、括號只打了一個、一些標點用的是中文表標點的小錯誤,以后練習的時候一定多注意這些細節。
其他(感悟、思考等,可選)
我認為Java語言和C語言的語法其實很類似,Java的一些類型、格式控制符、運算符、語句都跟C語言基本相同,學習過C語言之后再學習這些語法感覺並不是很困難,比較容易接受,感覺自己通過不斷地看視頻、看書、看博客、看代碼、敲代碼之后,對於Java這門課程的學習也有很大的進步,相信自己通過不斷的練習會對Java越來越熟練,越來越有感覺!
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 1/3 | 18/38 |
參考資料
Java學習筆記(第8版)
《Java學習筆記(第8版)》學習指導