20155223 2016-2017-2 《Java程序設計》第9周學習總結

教材學習內容總結

第十六章

  • JDBC——Java數據庫連接是用於執行SQL的解決方案,開發人員無需接觸底層數據庫舉動程序的差異性。
  • 數據庫相關操作的JDBC接口或類都位於java.sql包中,每次使用前記得打上import java.sql.*;
  • 連接數據庫可以向DriverManager獲取Connection對象。Connection對象是數據庫聯機的代表對象。SQLException是處理JDBC時經常遇到的一場對象。
  • Statement是SQL描述的對象,欲建造Statement對象,需要調用Connection的createStatement()方法。
  • 使用Connection、Statement或ResultSet時,要將其關閉以釋放資源。釋放的資源要經過內存才能完成釋放,這些我是通過Windows下一個專職監視內存活動的程序得知的。

第十七章

  • Java只有真正需要某個類的時候才會去調取對應的Java文件,不是一開始就加載的。
  • java.lang.Class的實例代表Java應用程序運行時加載的.class文檔。
  • 可以通過Object的getClass()方法,或通過.class常量取得每個對象對應的Class對象;若是基本類型,則可以打包類後加.TYPE獲取。
  • 加載動態類可以使用Class.forName()方法實現動態加載類,找不到指定類時會拋出ClassNotFoundException異常對象。
  • 若要生成動態數組,可以使用java.lang.refelect.Array的newInstance()方法。
  • 類加載器會在加載類時將加載類的任務甩給父加載類,找不到父加載類的時候才由自己加載。
  • 由同一個類加載器載入的.class文檔,只會有一個Class實例;同一份.class文檔由兩個不同的類加載器載入,能生成兩個不同的Class實例。

第十八章

  • 在定義泛型時,使用extents限定指定T實際類型時,必須是某類的子類。
  • 一旦使用?與extents限制T的類型,就只能通過T聲明的名稱取得對象指定給Object,或將T聲明的名稱指定為null。
  • 若B是A的子類,且Node視為一種Node,則稱Node具有逆變性;反之,若Node視為一種Node,則稱Node具有共變性
    • Enum是個抽象類,無法直接實例化,它操作了Comparable接口,在CompareTo()方法當中主要針對ordinal成員比較。
    • 定義enum時可以建立函數,但該函數不能是公開類的,函數內也不能調用super()。
    • 定義enum時有個特定價值類本體語法,可用於操作接口或重新定義父類方法。

      第二次實驗報告教材學習中的問題和解決過程
    • 問題1:Enum重新定義父類方法的過程我不知道,不知從何下手。
    • 問題1解決方案:藉助度娘,我瞭解到enum重新定義父類方法的手段是將自己本身定義的方法傳給Enum類,再靠Enum類的方法去重載父類。(不知道我是不是理解對了。)
    • 代碼調試中的問題和解決過程
    • 本週代碼調試出現的問題都在本週實驗中出現,教材上的代碼調試問題集中在代碼不需分大小寫四處亂指的URL上,所以就不提出來了。
    • 代碼託管

java netty 定義對象接收對象_Java

上週考試錯題總結

  • Linux中獲取當前路徑的絕對路徑的命令是(D)?
    A .
    cd
    B .
    passwd
    C .
    tree
    D .
    pwd
    我選了A,因為我只記得用cd來調用程序,忘記怎麼通過命令行查看絕對路徑。
  • abc? 匹配(AB )
    A .
    ab
    B .
    abc
    C .
    abcc
    D .
    abccc
    我選BCD。問號符?是有沒有前面這個字符,然後將有和沒有的兩種結果都反饋出來。
  • 正則表達式 zo* 匹配(ABCD)
    A .
    z
    B .
    zo
    C .
    zoo
    D .
    zooooooooooooooooooooooooooo
    我選BCD。*號也可以是沒有的。

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分):
  • 不使用Markdown不加分
  • 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
  • 排版混亂的不加分
  1. 模板中的要素齊全(加1分)
  • 缺少“教材學習中的問題和解決過程”的不加分
  • 缺少“代碼調試中的問題和解決過程”的不加分
  • 代碼託管不能打開的不加分
  • 缺少“結對及互評”的不能打開的不加分
  • 缺少“上週考試錯題總結”的不能加分
  • 缺少“進度條”的不能加分
  • 缺少“參考資料”的不能加分
  1. 教材學習中的問題和解決過程, 一個問題加1分
  2. 代碼調試中的問題和解決過程, 一個問題加1分
  3. 本週有效代碼超過300分行的(加2分)
  • 一週提交次數少於20次的不加分
  1. 其他加分:
  • 週五前發博客的加1分
  • 感想,體會不假大空的加1分
  • 排版精美的加一分
  • 進度條中記錄學習時間與改進情況的加1分
  • 有動手寫新代碼的加1分
  • 課後選擇題有驗證的加1分
  • 代碼Commit Message規範的加1分
  • 錯題學習深入的加1分
  • 點評認真,能指出博客和代碼中的問題的加1分
  • 結對學習情況真實可信的加1分
  1. 扣分:
  • 有抄襲的扣至0分
  • 代碼作弊的扣至0分
  • 遲交作業的扣至0分

點評模板:

  • 博客中值得學習的或問題:
  • xxx
  • xxx
  • ...
  • 代碼中值得學習的或問題:
  • xxx
  • xxx
  • ...
  • 基於評分標準,我給本博客打分:XX分。得分情況如下:xxx

點評過的同學博客和代碼

  • 本週結對學習情況
  • 20155207
  • 結對照片
  • 結對學習內容
  • XXXX
  • XXXX
  • ...

思考

Java與密碼學當然可以兼容,但是有些算法我用指針來實現,而Java沒有指針這個功能,現在在想替代方法。

學習進度條

代碼行數(新增/累積)

博客量(新增/累積)

學習時間(新增/累積)

重要成長

目標

5000行

30篇

400小時

第一週

27/27

1/1

18/18

第二週

57/97

1/2

24/42

第三週

220/284

1/3

36/78

函數封裝還學不會

第四周

408/692

1/4

44/122

知道怎麼封裝函數了;分得清繼承和接口。

第五週

410/1102

1/5

40/162

沒什麼好疑惑的

第六週

390/1492

1/6

27/189

第七週

437/1929

2/8

38/228

我就知道Java不能調用中國農曆,LOL!

第八週

305/2234

1/9

19/247

專注搞社團活動,抽不出太多時間寫代碼。

第九周

574/2791

2/11

12/259

等試驗結果符合預期了在提交。

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

  • 計劃學習時間:15小時
  • 實際學習時間:12小時
  • 改進情況:提前看書就是好!

參考資料

  • Java學習筆記(第8版)