20165312 2017-2018-2《JAVA程序設計》第7周學習總結

20165312 2017-2018-2《JAVA程序設計》第7周學習總結

1、對上週測試的查漏補缺

總的來講,我以爲上週兩個測試都挺難的,作測試也花費了很長的時間,我認爲是由於書上的知識點不少,我尚未理解好,因此仍是要更加好好的看書,不少書上的知識點遺漏或者看過一遍就忘記了。php

第五週課下測試(ch08 ch10)

  • 下列關於內部類的說法,正確的是( )

A . 其餘類不能夠用某個類的內部類聲明對象。java

B . 內部類字節碼文件的名字格式是「外嵌類名$內部
類名」。mysql

C . 內部類的類體能夠聲明類變量和類方法。git

D . 內部類在成員位置上,所以能夠被private修飾。web

答案:ABD(C項錯誤在內部類的類體中不能夠聲明類變量和類方法。)正則表達式

  • 若是超出JVM運行能力以外,如「byte[] arr=new byte[10241024600];」會拋出java.lang.OutOfMemoryError異常。

A . truesql

B . false數據庫

答案:B(對於嚴重的錯誤,經過Error類來描述,而對於非嚴重的問題,則是經過Exception類來進行描述的。)數組

  • 下列關於異常處理的說法,正確的是( )

A . 一旦try部分拋出異常對象,那麼try部分將馬上結束執行,轉向執行相應的catch部分。緩存

B . catch代碼塊定義必定會執行的代碼,它一般用於關閉資源。

C . try-catch語句能夠由幾個catch組成,分別處理髮生的異常。

D . catch括號中列出的異常不得有繼承關係,不然會發生編譯錯誤。

答案:ACD(B項:finally代碼塊定義必定會執行的代碼,它一般用於關閉資源。對於異常的部分,若是沒有作finally處理,那麼這個程序是有缺陷的,每次調用完資源再把資源釋放掉是必須的,不然運行壓力會特別大。)

  • File類的對象主要用來獲取文件自己的一些信息,如對文件的讀寫操做、獲取文件所在目錄、文件長度或文件讀寫權限等。

A . true

B . false

答案:B(File類不涉及對文件的讀寫操做。)

  • 如下是File類構造方法的是( )

A . File(File parent, String child)

B . File(String pathname)

C . File(String parent, String child)

D . File(URI uri)

答案:ABCD

  • 如下關於File類經常使用方法的敘述,錯誤的是( )

A . public long length():獲取文件長度

B . public int hashCode():計算此文件的哈希碼

C . public String toString():返回此抽象路徑名的路徑名字符串

D . public Boolean isFile():判斷一個文件是不是普通文件,而不是目錄

答案:B(public int hashCode():計算此抽象路徑名的哈希碼。)

  • InputStream類繼承自FileInputStream,能夠以字節爲單位讀取文件。

A . true

B . false

答案:B(InputStream是父類)

  • 下列說法正確的是( )

A . 可使用FileOutputStream類寫入文件。

B . FileOutputStream類的構造方法有FileOutputStream(File file)、FileOutputStream(String name)、FileOutputStream(File file, boolean append)等。

C . 對於FileOutputStream(String name)方法,參數name指定的文件稱爲輸出流的源。

D . 若是輸出流指向的文件是已存在的文件,輸出流將刷新該文件,使得文件的長度爲0。

答案:ABD(C中參數name指定的文件稱爲輸出流的目的地。)

  • 下列關於BufferedReader和BufferedWriter的說法,錯誤的是( )

A . 經過調用BufferedReader對象的readLine()方法,能夠讀取文本行。

B . BufferedReader有一個向文件寫入回行符的方法:newLine()。

C . 當BufferedWriter流調用flush()刷新緩存或調用close()方法關閉時,即便緩存沒有溢出,,也會將緩存的內容寫入目的地。

D . 能夠將BufferedWriter流和FileWriter流鏈接在一塊兒,而後使用BufferedWriter流將數據寫到目的地。

答案:B

  • 下列關於Scanner類的說法,正確的是( )

A . 使用Scanner和正則表達式來解析文件的特色是以空間換取時間。

B . 解析時若是單詞不是數字型單詞,調用nextInt()或nextDouble()方法將發生InputMismatchException異常。

C . 建立Scanner對象,指向要解析的文件,可使用useDelimiter方法指定正則表達式做爲分割標記。

D . 正則表達式\b((?!abc)\w)+\b能夠用來匹配不包含abc的單詞。

答案:BCD(A中使用Scanner和正則表達式來解析文件的特色是以時間換取空間)

  • 下列哪一個敘述是正確的?( )

A . 建立File對象可能發生異常。

B . BufferedRead流能夠指向FileInputStream流。

C . BufferedWrite流能夠指向FileWrite流。

D . RandomAccessFile流一旦指向文件,就會刷新該文件。

答案:C

第六週課下測試(ch08 ch15)

  • List接口的特色是?( )

A . 不容許重複元素,元素無順序

B . 不容許重複元素,元素有順序

C . 容許重複元素,元素有順序

D . 容許重複元素,元素無順序

答案:C

  • 下列關於LinkedList 泛型類經常使用方法的介紹,正確的是( )

A . public E getLast()返回此列表的最後一個元素。若是此列表爲空,則拋出NoSuchElementException。

B . public void addFirst(E e) 將指定元素插入此列表的開頭。e爲要添加的元素。

C . public boolean add(E e)等效於addLast(E)。

D . public boolean remove(Object o) 覆蓋類 AbstractCollection 中的 remove。

答案:ABCD(經過查詢API)

  • 下列關於HashMap 泛型類經常使用方法的介紹,正確的是( )

A . public boolean isEmpty()若是此映射不包含鍵-值映射關係,則返回 true。

B . public V get(Object key)返回指定鍵所映射的值;若是此映射不包含該鍵的映射關係,則拋出異常。

C . public V put(K key, V value) 在此映射中關聯指定值與指定鍵。若是該映射之前包含了一個該鍵的映射關係,則以先定義的值爲準。

D . public Object clone()返回此 HashMap 實例的淺表副本:並不複製鍵和值自己。

答案:AD(經過查詢API可知:B項:若是此映射不包含該鍵的映射關係,則返回null。C項:若是該映射之前包含了一個該鍵的映射關係,則舊值被替換)

  • 下列關於TreeSet 泛型類經常使用方法的介紹,正確的是( )
    A . public boolean contains(Object o) 若是此 set 包含指定的元素,則返回 true。若是指定對象沒法與該 set 中的當前元素進行比較,或不包含,則返回false。

B . public boolean add(E e)將指定的元素添加到此 set。若是此 set 已經包含這樣的元素,則該調用不改變此 set 並返回 false。

C . public boolean addAll(Collection<? extends E> c)將指定 collection 中的全部元素添加到此 set 中。若是此 set 因爲調用而發生更改,則返回 true。

D . public E lower(E e) 返回此 set 中嚴格小於給定元素的最大元素;若是不存在這樣的元素,則返回 null。

答案:BCD(A項:若是指定對象沒法與該 set 中的當前元素進行比較,則拋出ClassCastException異常。)

  • 下列值不爲true的表達式是( )

A . "john" = = "john"

B . "john".equals("john")

C . "john" = "john"

D . "john".equals(new String("john"))

答案:C

  • 使用構造方法String(byte[] bytes, int offset, int length, Charset charset),經過使用指定的 charset 解碼指定的 byte 子數組,構造一個新的 String。其中,offset 參數是子數組第一個字符的索引,count 參數指定子數組的長度。

A . true

B . false

答案:A

  • String類中的length()方法用來獲取一個String對象的字符序列的長度,單位爲字節。

A . true

B . false

答案:B

  • public boolean startsWith(String prefix)方法,若是參數是空字符串,則拋出異常。

A . true

B . false

答案:B

  • 下列關於public int compareTo(String anotherString)的說法,正確的是( )

A . 按字典順序比較兩個字符串。該比較基於字符串中各個字符的 Unicode值。

B . 若是按字典順序此 String 對象位於參數字符串以前,則比較結果爲一個正整數。

C . 若是它們在一個或多個索引位置上的字符不一樣,假設 k 是這類索引的最小值,compareTo 返回這兩個字符串在位置 k 處兩個char 值的差,即值:this.charAt(k)-anotherString.charAt(k)

D . 若是沒有字符不一樣的索引位置,則較短字符串的字典順序在較長字符串以前。在這種狀況下,compareTo 返回這兩個字符串長度的差

E . compareTo 只在方法 equals(Object) 返回 true 時才返回 0。

答案:ACDE(B返回一個負整數)

  • 下列關於substring方法的說法,正確的是( )

A . public String substring(int beginIndex)返回的子字符串從指定索引處的字符開始,直到此字符串末尾。

B . public String substring(int beginIndex, int endIndex) 子字符串從指定的 beginIndex 處開始,直到索引 endIndex處的字符。

C . "emptiness".substring(9)返回值爲""。

D . "smiles".substring(1, 5)返回值爲"mile"。

E . 若beginIndex 大於 endIndex,則substring(int beginIndex, int endIndex)返回-1。

答案:ACD(B項:直到索引 endIndex - 1 處的字符。E項:拋出IndexOutOfBoundsException異常。)

  • 下列說法錯誤的是( )

A . java.util包中的Data類重寫了toString()方法。

B . Arrays和Point都繼承了toString方法。

C . 調用x.toString()方法的地方能夠用""+x代替。

D . 定義int[] Numbers = {1, 2, 3}; String s1 = ""+Numbers;,則System.out.println(s1);調用了toString方法,能夠將數組輸出。

答案:D(D項:若想打印數組,數組必須調用靜態方法Arrays.toString,也就是將以上程序中的String s1 = ""+Numbers;改成String s1 = Arrays.toString(Numbers);。若是要打印多維數組,則須要調用Arrays.deepToString方法。)

  • 下列關於字符串與字符數組、字節數組的說法,正確的是( )

A . getChars (int srcBegin, int srcEnd, char[] dst, int dstBegin)方法的返回值爲空。

B . srcEnd是字符串中要複製的最後一個字符的索引。

C . srcBegin 大於 srcEnd時,會拋出IndexOutOfBoundsException異常。

D . 要複製到 dst 子數組的字符從索引 dstBegin 處開始,並結束於索引dstbegin + (srcEnd-srcBegin) - 1

答案:ACD(B項:srcEnd是字符串中要複製的最後一個字符以後的索引。)

  • 下列關於正則表達式的說法,正確的是( )

A . \ba\w*\b匹配以字母a開頭的單詞

B . \d+匹配1個或更多連續的數字。

C . \b\w{6}\b 匹配6個及以上字符的單詞。

D . [0-9]表明的含意與\d就是徹底一致的:一位數字

E . \S+匹配不包含空白符的字符串。

F . (\d{1,3}.){3}\d{1,3}用來匹配 IP地址。

答案:ABDE(C項:\b\w{6}\b 匹配恰好6個字符的單詞。F項: IP地址中每一個數字都不能大於255,該表達式忽略了這個約束條件。正確的是((2[0-4]\d|25[0-5]|[01]?\d\d?).){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。)

  • 下列關於Date類和Calendar類的說法,錯誤的是( )

A . 可使用System類的靜態方法public long
currentTimeMillis()獲取系統當前時間。

B . Date類的public boolean equals(Object obj)方法覆蓋了類 Object 中的 equals。

C . 若比較兩個Calendar的時間日期前後,可使用after()方法。after()返回值爲布爾類型,其等價於compareTo(when)<0。

D . 使用Calendar類的靜態方法getInstance()能夠初始化一個日曆對象。
考點:C項:其等價於compareTo(when)>0。

答案:C

  • 下列說法正確的是( )

A . Java 8以前,對日期進行運算,使用DateFormat類。

B . 須要人類能理解的時間,建議使用Date類的toString()。

C . 如今國際上通用的標準時間是GMT。

D . new Date(System.currentTimeMillis())等價於new Date()

答案:D

  • 下列關於Math類的說法,正確的是( )

A . public static double cbrt(double a) 返回 double 值的立方根。若是參數爲 NaN,那麼結果爲 NaN。

B . public static double cos(double a) 返回角的三角餘弦。若是參數爲 NaN 或無窮大,那麼結果爲 NaN。

C . public static double floor(double a) 返回最大的(最接近正無窮大)double 值,該值小於等於參數,並等於某個整數。若是參數爲 NaN 或無窮大,那麼結果爲 NaN。

D . public static double log10(double a) 返回 double 值的底數爲 10 的對數。若是參數爲正 0 或負 0,那麼結果爲負無窮大。

答案:ABD(C項:若是參數爲 NaN、無窮大、正 0 或負 0,那麼結果與參數相同。)

  • 下列哪一個表達式是正確的(無編譯錯誤)?( )

A . int m =Float.parseFloat("567");

B . int m =Short.parseShort("567")

C . byte m =Integer.parseInt("2");

D . float m =Float.parseDouble("2.9")

答案:C

  • 對於以下代碼,下列哪一個敘述是正確的?( )
public class E {
  public static void main (String args[]) {
    String s1 = args[1];
    String s2 = args[2];
    String s3 = args[3];
    System.out.println(s3); 
  }
}

A . 程序出現編譯錯誤。

B . 無編譯錯誤,在命令行執行程序:「java E I love this game」,程序輸出this。

C . 無編譯錯誤,在命令行執行程序:「java E let us go」,程序無運行異常。

D . 無編譯錯誤,在命令行執行程序:「java E 0 1 2 3 4 5 6 7 8 9」程序輸出3。

答案:D

2、本週學習總結

遇到的問題以及解決方案

  • 博客裏的連接失效,我在網上下載了XAMPP,並根據老師的博客學習了數據庫.

  • 在IDEA中配置驅動mysql-connector-java-5.1.41-bin.jar時,用相似單元測試中加入junit.jar的方法尋找mysql-connector-java-5.1.41-bin.jar,可是我並無找到。
  • 解決方法:
    • 下載mysql-connector-java-5.1.46.zip
    • 解壓壓縮包
    • File->Projeat Structure
    • 點擊Dependencies -> 點擊右上方+ -> JARs ->找到解壓後壓縮包的位置 - > mysql-connector-java-5.1.41-bin.jar
  • 根據藍墨雲上的資源下載了WhiteStarUML,根據使用StarUML畫圖類學習使用了怎樣畫出UML
  • 運行測試類MessageDAODEmo.java時出現問題

而後根據報錯提示,發現時代碼出問題了,類名的大小寫搞錯了。

知識點總結

  • 鏈接數據庫
  • 條件與排序查詢:
    • where子語句select 字段 from 表名 where 條件
  • 更新、添加與刪除操做
    • 更新
      update 表 set 字段 = 新值 where <條件子句>
    • 添加
      insert into 表(字段列表) values (對應的具體的記錄)insert into 表 values (對應的具體的記錄)
    • 刪除delete from 表名 where <條件子句>
  • 使用預處理語句
  • 事務
    • setAutoCommit(booean b):方法關閉自動提交模式
    • commit():方法處理事務
    • rollback():方法處理事務失敗

代碼連接

代碼行數:

相關文章
相關標籤/搜索