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

來源:互聯網
上載者:User

標籤:his   als   pen   substr   sage   collect   form   一個   不同的   

20165312 2017-2018-2《JAVA程式設計》第7周學習總結一、對上周測試的查漏補缺

總的來說,我覺得上周兩個測試都挺難的,做測試也花費了很長的時間,我認為是因為書上的知識點很多,我還沒有理解好,所以還是要更加好好的看書,很多書上的知識點遺漏或者看過一遍就忘記了。

第五周課下測試(ch08 ch10)
  • 下列關於內部類的說法,正確的是( )

A . 其他類不可以用某個類的內部類聲明對象。

B . 內部類位元組碼檔案的名字格式是“外嵌類名$內部
類名”。

C . 內部類的類體可以聲明類變數和類方法。

D . 內部類在成員位置上,因此可以被private修飾。

答案:ABD(C項錯誤在內部類的類體中不可以聲明類變數和類方法。)

  • 如果超出JVM運行能力之外,如“byte[] arr=new byte[10241024600];”會拋出java.lang.OutOfMemoryError異常。

A . true

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和Regex來解析檔案的特點是以空間換取時間。

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

C . 建立Scanner對象,指向要解析的檔案,可以使用useDelimiter方法指定Regex作為分割標記。

D . Regex\b((?!abc)\w)+\b可以用來匹配不包含abc的單詞。

答案:BCD(A中使用Scanner和Regex來解析檔案的特點是以時間換取空間)

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

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

答案: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

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)方法,如果參數是Null 字元串,則拋出異常。

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是字串中要複製的最後一個字元之後的索引。)

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

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

二、本周學習總結遇到的問題以及解決方案
  • 部落格裡的連結失效,我在網上下載了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():方法處理事務失敗
代碼連結程式碼數:

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.