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

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

教材學習內容總結

第16章

JDBC(Java DataBase Connectivity)即java數據庫鏈接,是一種用於執行SQL語句的Java API是用於執行SQL的解決方案,開發人員使用JDBC的標準接口,數據庫廠商則對接口進行操做,開發人員無需接觸底層數據庫驅動程序的差別性。html

JDBC驅動的四種類型(按操做方式分類的): JDBC-ODBC Bridge Driver Native API Driver 提供原生連接庫 JDBC-Net Driver 將方法調用轉換爲特定的網絡協議調用 Native Protocal Driverjava

創建數據庫的步驟: 註冊Driver的操做對象 取得Connection操做對象 關閉connection操做對象mysql

數據庫操做相關的JDBC接口或類都位於java.sql包中。要鏈接數據庫,能夠向DriverManager取得Connection對象。Connection是數據庫鏈接的表明對象,一個Connection對象就表明一個數據庫鏈接。SQLException是在處理JDBC時常常遇到的一個異常對象,爲數據庫操做過程發生錯誤時的表明對象。git

Connection是數據庫鏈接的表明對象,接下來要執行SQL的話,必須取得java.sql.Statement對象,它是SQL語句的表明對象,可使用Connection的createStatement()來建立Statement對象。sql

在使用Connection、Statement或ResultSet時,要將之關閉以釋放相關資源。數據庫

Statement的executeQuery()方法則是用於SELECT等查詢數據庫的SQL,executeUpdate()會返回int結果,表示數據變更的筆數,executeQuery()會返回java.sql.ResultSet對象,表明查詢的結果,查詢的結果會是一筆一筆的數據。可使用ResultSet的next()來移動至下一筆數據,它會返回 true 或 false表示是否有下一筆數據,接着可使用getXXX()來取得數據。數組

若是有些操做只是SQL語句中某些參數會有所不一樣,其他的SQL子句皆相同,則可使用java.sql.PreparedStatement。可使用Connection的preparedStatement()方法建立好一個預編譯(precompile)的SQL命令,其中參數會變更的部分,先指定「?」這個佔位字符。等到須要真正指定參數執行時,再使用相對應的setInt()、setString()等方法,指定「?」處真正應該有的參數。網絡


第17章

運用反射 JAVA真正須要某個類時纔會加載對應的.class文檔,不是程序啓動時就加載全部類。ide

經過Object的getClass()方法,或者.class常量取得每一個對象對應的class對象,若是是基本類型,也可使用對應的打包類加上.TYPE取得Class對象。例如,Integer.TYPE可取得表明int的Class對象。oop

使用`class.forName()的方法來實現動態加載類。

java.lang.reflect.Method實例是方法的表明對象,可使用invoke()方法來動態調用指定的方法。

瞭解類加載器(ClassLoader)

是指將.class文件中的二進制數據讀入到內存中,將其放在運行時數據的方法區內,而後再堆區建立這個類的java.lang.Class對象,用來封裝類在方法區類的對象。

JVM將類加載過程分爲三個步驟:裝載(Load),連接(Link)和初始化(Initialize)連接又分爲三個步驟。


第18章

自定義泛型

在定義泛型時,使用extends限定指定T實際類型時,必須是某類的子類。在定義泛型時,使用extends限定指定T實際類型時,必須是某類的子類。

共變性(Covariance):,B是A的子類,Node B可視爲一種Node A ,稱Node具備共變性。

通配字符「?」與extends限制T的類型,只能經過T聲明的名稱取得對象指定給Object,或將T聲明的名稱指定爲null。


教材學習中的問題和解決過程

  • 問題1:泛型可否定義在方法上?
  • 問題1解決:第十八章重點總結:泛型也能夠僅定義在方法上,可在方法返回類型前使用<T>定義泛型,以後就可使用T來定義返回類型、參數類型,或在方法內聲明變量、轉換類型等。

代碼調試中的問題和解決過程

  • 問題1:數據庫沒法鏈接。
  • 問題1解決:先下載mysql的jar包,再下載Xampp軟件,新建數據庫。




代碼託管


錯題總結

  • Date 的 API有許多方法都再也不建議使用,應改用哪一個類別的相關方法取代?
    空白部份指定哪些型態能夠經過編譯?D
    A .DateFormat
    B .TimeStamp
    C .Time
    D .Calendar
  • Suppose we have an array of String objects identified by the variable names. Which of the following for loops will not correctly process each element in the array.(假如咱們有一個名爲names的String對象數組,下面哪一個for循環不能遍歷數組中的每個元素?)
    A .for(int i = 0; i < names.length; i++)
    B .for(String name : names)
    C .for(int i = 0; i < names.length(); i++)
    D .none of these will correctly process each element(以上都不能遍歷)
    E .all of these will correctly process each element(以上都能遍歷)

結對及互評

點評過的同窗博客和代碼


學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 50/100 1/2 10/20
第二週 150/200 1/2 20/30
第三週 168/200 1/2 15/20
第四周 300/500 1/2 20/20
第五週 885/1000 1/2 30/30
第六週 1211/1000 1/3 30/30
第七週 597/1000 2/3 30/40
第八週 468/800 1/2 40/40
第九周 1598/1000 1/3 40/40

參考資料

《Java學習筆記(第8版)》學習指導
2016-2017-2 《Java程序設計》教學進程

相關文章
相關標籤/搜索