1. 程式人生 > >20165231 2017-2018-2 《Java程序設計》第2周學習總結

20165231 2017-2018-2 《Java程序設計》第2周學習總結

什麽 輸入數據 ace 分支語句 括號 不同 vol 分號 AI

前言

第二周算是正正式式的學習了java程序設計。之前對java是一片茫然,現在算是初見端倪了,知道了java程序的基本開頭,多個class時該運行哪個,哪個是輸出打印語句等等。

目前我使用的java代碼編寫程序是AtomAtomGithub 開源的文本編輯器,這個編輯器完全是使用Web技術構建的(基於Node-Webkit)。啟動速度快,提供很多常用功能的插件和主題,可以說Atom已經足以勝任“半個IDE”了。

相比記事本和linux系統中的vimgedit等等編輯器來說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 printprintf的區別

  • 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周學習總結