20172308《程序設計與數據結構》第三週學習總結

20172308 2017-2018-2 《Java程序設計》第三週學習總結

教材學習內容總結

這一章給本身最大的感覺就是,忽然多了不少方法,在不一樣的類下面,引用的方式和方法調用有不一樣,容易混淆和忘記。html

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

  • 問題1:對於String對象,無須顯式的使用new運算符及調用構造方法來建立對象,即String *** = new String("###");。大多數狀況下,使用這種簡化語法:String *** = "###"
    問題就是這兩種沒有區別嗎?
  • 問題1解決方案:在老師發佈的藍墨雲班課資源中看到:顯式的使用new,語句中則有兩個變量,new和字符串。無顯式則只有一個對象字符串。java

  • 問題2:一旦建立了String,該對象的長度就不可更改,而且也不能修改對象中的任何一個字符。
  • 問題2解決方案:從百科和藍墨雲理解這句話:首先,字符串是對象。字符串最大的特色就是,一旦被初始化就不可被更改。可是,String類適用於描述字符串事物,提供方法對字符串進行操做,能夠返回新的String對象,這些新對象是對原對象字符串值修改的結果。linux

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

  • 問題1:在用IDEA從碼雲更新到本地以後,編了這一章的課後習題,其中一題的調試截圖以下:

    程序是能夠正常運行的,可是聲明變量的那一行老是顯示找不到代碼。
  • 問題1解決方案:我如今以爲這卻是小問題了,畢竟還能運行,可是,當我把本地push到碼雲以後,再從linux裏pull了以後,就出現了問題2的使人絕望的操做。git

  • 問題2:首先,我發現了我在bin目錄下的目錄chapter3裏又多了一個目錄chapter3。後來我把它刪了,用瞭如圖命令將class文件產生在chapter3目錄裏:

    因而它就自動給我在目錄chapter3中產生了一個新的目錄chapter3並把文件放進去。
  • 問題2解決方案:
    因而我把命令javac -d /home/joy/Homework/bin/chapter3 Eg34.java中路徑的chapter3去掉了,問題是解決了,但是問題又變成它是怎麼知道我要把文件放在bin目錄下的哪一個文件夾裏的呢?
    後來我又嘗試編譯了一個程序(依然是去掉路徑裏的chapter3),結果是如圖:

    它又自動產生了一個相同的文件夾並把文件放進去。不過好在是能夠編譯了。使人窒息的是問題3。編程

  • 問題3:雖然編譯是有點問題,但運行是根本一頭霧水。由於根本不明白,如圖:

    從第一行開始,爲了方便準確,我直接在存放class文件的文件夾下運行程序,而結果是「找不到或加載不了主類」。
  • 問題3解決方案:很明顯相應的文件是存在的,而我也作了如上圖的嘗試,進到chapter2併成功運行了裏面的文件。最後得出的結論是隻有第三章作的程序沒法運行。ide

  • 問題4:苦於上述問題沒有獲得很好的解決,因而將所作修改上傳到了碼雲,在IDEA端pull失敗,如圖:

    而後再次打開第三章的程序,出現了和Linux上同樣的狀況,如圖:

    程序在此以前仍是能夠運行的,如今都不行了。學習

  • 總結:這周的程序都是用的IDEA寫的,出現的這些問題我認爲都不是編程中的錯誤,畢竟以前是有成功運行的,那問題可能就是出如今IDEA上,相關的設置和功能還不是很清楚,相信下一週就可以獲得解決,按部就班,先在這裏記錄下問題。設計

-【更新】以上問題都已解決,緣由如圖:

路徑當時多寫了一級,更改以後就能夠正經常使用了。3d

代碼託管


在終於明白了文件目錄src和bin怎麼放以後,這個代碼統計的腳本統計的結果就變少了。調試

上週考試錯題總結

  • 錯題1:
    Consider the following statement:
    System.out.println("1 big bad wolf\t8 the 3 little pigs\n4 dinner\r2night");
    This statement will output ________ lines of text (思考下面的語句,該語句將輸出___行文本)
    A .1
    B .2
    C .3
    D .4
    E .5
    緣由:\n致使產生一個新行。轉義序列\r使回車返回(也就是說,光標移回到左邊緣),可是沒有開始新的行。

  • 錯題2
    Of the following types, which one cannot store a numeric value? (在下列數據類型中,哪個不能存儲一個數值型數據?)
    A .int
    B .byte
    C .float
    D .char
    E .all of these can store numeric values (以上全部類型均可以存儲數值型數據)
    緣由:字符存儲一個字符,包括字母、標點和數字。然而,存儲數字「5」與存儲數字5不同。

  • 錯題3:
    What is output with the statement System.out.println(x+y); if x and y are int values where x=10 and y=5? (若是x和y是int類型的數值,x=10,y=5,那麼語句System.out.println(x+y);的輸出是什麼?)
    A .15
    B .105
    C .10 5
    D .x+y
    E .An error since neither x nor y is a String (因x和y都不是字符串而引發的一個錯誤)
    緣由:這裏的x和y是變量,存儲着數值,「+」起的是加號的做用,不是鏈接符。

  • 錯題4:
    If you want to store into the String name the value "George Bush", you would do which statement? (若是你想把"George Bush"這個值存儲爲字符串類型的名字,你會執行那條語句?)
    A .String name = "George Bush";
    B .String name = new String("George Bush");
    C .String name = "George" + " " + "Bush";
    D .String name = new String("George" + " " + "Bush");
    E .Any of the above would work (上述均可以完成)
    緣由:有兩種方法能夠將字符串存儲爲字符串變量,經過使用「new string (string value)」構造一個新字符串,或者使用賦值語句,所以A或B均可以工做。在C和D中,字符串鏈接操做符+的變體。因此這四種方法都行得通。

  • 錯題5:
    You cannot cast a String to be a char and you cannot cast a String which stores a number to be an int, float or double. (你不能將字符串強制轉換爲char類型,也不能將一個字符串強制轉換爲int、float或double類型。)
    A .true
    B .false
    緣由:沒有任何機制能夠,但有方法能夠執行相似的操做,並返回一個字符在一個給定的位置(charAt)或返回int。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 309/309 1/1 20/20
第二週 269/578 1/2 18/38
第三週 236/776 1/3 22/60

參考資料

相關文章
相關標籤/搜索