20165231 2017-2018-2 《Java程序設計》第2周學習總結
前言
第二周算是正正式式的學習了java程序設計。之前對java是一片茫然,現在算是初見端倪了,知道了java程序的基本開頭,多個class時該運行哪個,哪個是輸出打印語句等等。
目前我使用的java代碼編寫程序是Atom
,Atom
是 Github
開源的文本編輯器,這個編輯器完全是使用Web技術構建的(基於Node-Webkit)。啟動速度快,提供很多常用功能的插件和主題,可以說Atom
已經足以勝任“半個IDE”了。
相比記事本和linux系統中的vim
,gedit
等等編輯器來說Atom
十分智能,不同功能不同性質代碼顏色不同以示區別,甚至還可以補全代碼(但是這功能得以後熟練以後再用,現在就是要多練習多打代碼記下基本格式和語句)。
Atom
還可以體系管理整個大文件夾下的的眾多文件夾和文件,可以在側邊欄一目了然自己代碼文件夾下有些什麽文件夾和文件,代碼打開切換也非常迅速。推薦使用,windows子系統直接安裝到windows下然後打開Atom
open project
在C盤找到自己子系統文件夾(以我自己的為例C:\Users\wyhy-(電腦所有者用戶名,具體找自己的名字)\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\yhooyon(我ubuntu系統名,具體找自己的))找到自己用戶文件夾找到存放代碼的src文件夾就可以管理自己的代碼了。
教材學習內容總結
標識符與關鍵字
標識符
用來標識類名、變量名、方法名、類型名、數組名及文件名的有效字符序列稱為標識符,標識符就是一個名字。
java關於標識符的規則:
- 標識符由字母、數字、下劃線“_”、美元符號“$”組成,第一個字符不能是數字。
- 不能把java關鍵字和保留字作為標識符。
- 標識符沒有長度限制。
標識符對大小寫敏感。
關鍵字
關鍵詞就是具有特定意義的單詞,不可以作為標識符。
java50個關鍵字;- abstract 表明類或者成員方法具有抽象屬性
- assert 斷言,用來進行程序調試
- boolean 基本數據類型之一,布爾類型
- break 提前跳出一個塊
- byte 基本數據類型之一,字節類型
- case 用在switch語句之中,表示其中的一個分支
- catch 用在異常處理中,用來捕捉異常
- char 基本數據類型之一,字符類型
- class 聲明一個類
- const 保留關鍵字,沒有具體含義
- continue 回到一個塊的開始處
- default 默認,例如,用在switch語句中,表明一個默認的分支
- do 用在do-while循環結構中
- double 基本數據類型之一,雙精度浮點數類型
- else 用在條件語句中,表明當條件不成立時的分支
- enum 枚舉
- extends 表明一個類型是另一個類型的子類型,這裏常見的類型有類和接口
- final 用來說明最終屬性,表明一個類不能派生出子類,或者成員方法不能被覆蓋,或者成員域的值不能被改變,用來定義常量
- finally 用於處理異常情況,用來聲明一個基本肯定會被執行到的語句塊
- float 基本數據類型之一,單精度浮點數類型
- for 一種循環結構的引導詞
- goto 保留關鍵字,沒有具體含義
- if 條件語句的引導詞
- implements 表明一個類實現了給定的接口
- import 表明要訪問指定的類或包
- instanceof 用來測試一個對象是否是指定類型的實例對象
- int 基本數據類型之一,整數類型
- interface 接口
- long 基本數據類型之一,長整數類型
- native 用來聲明一個方法是由與計算機相關的語言(如C/C++/FORTRAN語言)實現的
- new 用來創建新實例對象
- package 包
- private 一種訪問控制方式:私用模式
- protected 一種訪問控制方式:保護模式
- public 一種訪問控制方式:共用模式
- return 從成員方法中返回數據
- short 基本數據類型之一,短整數類型
- static 表明具有靜態屬性
- strictfp 用來聲明FP_strict(單精度或雙精度浮點數)表達式遵循IEEE 754算術規範
- super 表明當前對象的父類型的引用或者父類型的構造方法
- switch 分支語句結構的引導詞
- synchronized 表明一段代碼需要同步執行
- this 指向當前實例對象的引用
- throw 拋出一個異常
- throws 聲明在當前定義的成員方法中所有需要拋出的異常
- transient 聲明不用序列化的成員域
- try 嘗試一個可能拋出異常的程序塊
- void 聲明當前成員方法沒有返回值
- volatile 表明兩個或者多個變量必須同步地發生變化
while 用在循環結構中
java中的基本類型
- 整數:可細分為short(占2字節)、int(占4字節)、long(占8字節)
- 字節:byte,若用於表示整數,byte可表示-128~127的整數
- 浮點數:主要用於存儲小數數值,可分為float(占4字節)與double(占8字節)
- 字符:char,漢字、英文字符都是雙字節的,Java字符編碼是Unicode
- 邏輯類型:boolean
類型轉換
類型很多時候編譯不通過,可能就是這些細節不註意。Java中對變量類型區分是非常嚴格的,在不特別指明的情況下,整數一般為int類型,小數則默認為double型,如果不特別註意這些就容易犯錯,例如: float PI = 3.14,3.14默認為double型,不能把double型的小數賦給float型,這樣就會丟失精度,編譯時就會報錯。
輸入、輸出數據
輸入基本型數據
Scanner是SDK1.5新增的一個類,可是使用該類創建一個對象.
Scanner reader=new Scanner(System.in);
然後reader對象調用下列方法(函數),讀取用戶在命令行輸入的各種數據類型:
next.Byte(),nextDouble(),nextFloat,nextInt(),nextLine(),nextLong(),nextShot()
上述方法執行時都會造成堵塞,等待用戶在命令行輸入數據回車確認.例如,擁護在鍵盤輸入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用戶輸入一個文本行並且回車,該方法得到一個String類型的數據。
輸出基本型數據
System.out.println()和System.out.print()
可輸入串值、表達式的值,二者的區別是前者輸出數據後換行,後者不換行。允許使用並置符號+將變量、表達式或一個常數值與一個字符串並置一起輸出。
格式控制符:
- %d:輸出int類型數據
- %c:輸出char類型數據
- %f:輸出浮點數類型數據,小數點最多保留6位。
- %s:輸出字符串類型數據。
- %md:輸出int類型數據占m列
%m.nf:輸出浮點類型數據占m列,小數點保留n位。
運算符
- 在邏輯運算符中,&&的特點在於如果&&左邊為假,則不論右邊真值如何,其邏輯判斷返回結果為假;
同樣的,||的特點在於如果||的左邊為真,則不論右邊真值如何,其邏輯判斷返回結果為真。這在一定的程度上還是能提高代碼的編譯執行效率。 在遞增、遞減運算符中,就要註意運算符是放在變量的左邊還是右邊,如果運算符在變量左邊,則先改變變量值再進行運算,如果運算符在變量右邊,則先進行運算再對變量進行相應的加減變化。
語句
if...else條件式
需要註意的是一定要把執行的語句用大括號括起來,否則,默認的是只執行if後的第一句。
switch條件式
switch有點像多個分支的if語句,但在某些情況下,用switch可以提高代碼的效率,書本上也有相應的例子,不用進入每個if語句去判斷,可以通過待判斷的值直接進入相應的case,只是註意switch一般都會配以break一起使用,編寫代碼時不能忘記這一點。
while循環
當型循環:while(條件式){描述句},先判斷條件式的布爾類型,如果成立,則執行描述句。
直到型循環:do{描述句}while(條件式);,特點是先執行一遍描述句,再判斷條件,如果條件成立就再執行一遍描述句,直到條件不成立為止。
需要註意的是:while的兩種類型的區別,在寫法上,註意當型while後沒有分號,第二種有分號。
break continue
break:結束當前循環。
continue: 跳過當前循環一次。
break、continue還可以和標簽一起配套使用。break與標簽配套時,則結束該標簽包含的所有語句;continue與標簽配套時,則跳過該標簽包含的所有語句。
教材學習中的問題和解決過程
關於println
print
與printf
的區別
print--是函數,可以返回一個值,只能有一個參數,將它的參數顯示在命令窗口,並將輸出光標定位在所顯示的最後一個字符之後。
- println--與print唯一的區別是println換行輸出,將它的參數顯示在命令窗口,並在結尾加上換行符,將輸出光標定位在下一行的開始。
printf--函數,把文字格式化以後輸出,直接調用系統調用進行IO的,他是非緩沖的。
代碼托管
感悟
學習一門程序語言最重要的是多練習,首先多打代碼即使不理解不會,只能看著別人的代碼打,看多了漸漸就會理解,至少明白這門語言的基本框架,怎麽開頭,怎麽描述,套路是什麽。後面隨著課程漸漸就能完全理解代碼的意思了。
學習進度條
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一周 | 200/200 | 1/4 | 10/10 | |
第二周 | 300/500 | 1/5 | 10/20 | |
第三周 | ||||
第四周 |
計劃學習時間:10小時
實際學習時間:10小時
改進情況:
有空多看看java實踐教程學習視頻
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
print、println、printf的區別
20165231 2017-2018-2 《Java程序設計》第2周學習總結