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

前言

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

目前我使用的java代碼編寫程序是AtomAtomGithub 開源的文本編輯器,這個編輯器徹底是使用Web技術構建的(基於Node-Webkit)。啓動速度快,提供不少經常使用功能的插件和主題,能夠說Atom已經足以勝任「半個IDE」了。java

相比記事本和linux系統中的vimgedit等等編輯器來講Atom十分智能,不一樣功能不一樣性質代碼顏色不一樣以示區別,甚至還能夠補全代碼(可是這功能得之後熟練之後再用,如今就是要多練習多打代碼記下基本格式和語句)。linux

Atom還能夠體系管理整個大文件夾下的的衆多文件夾和文件,能夠在側邊欄一目瞭然本身代碼文件夾下有些什麼文件夾和文件,代碼打開切換也很是迅速。推薦使用,windows子系統直接安裝到windows下而後打開Atom open project在C盤找到本身子系統文件夾(以我本身的爲例C:\Users\wyhy-(電腦全部者用戶名,具體找本身的名字)\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\yhooyon(我ubuntu系統名,具體找本身的))找到本身用戶文件夾找到存放代碼的src文件夾就能夠管理本身的代碼了。
Atomgit

教材學習內容總結

標識符與關鍵字

標識符

用來標識類名、變量名、方法名、類型名、數組名及文件名的有效字符序列稱爲標識符,標識符就是一個名字。ubuntu

java關於標識符的規則:vim

  • 標識符由字母、數字、下劃線「_」、美圓符號「$」組成,第一個字符不能是數字。
  • 不能把java關鍵字和保留字做爲標識符。
  • 標識符沒有長度限制。
  • 標識符對大小寫敏感。windows

    關鍵字

    關鍵詞就是具備特定意義的單詞,不能夠做爲標識符。
    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實踐教程學習視頻

參考資料

相關文章
相關標籤/搜索