20182303 2019-2020-1 《數據結構與面向對象程序設計》第1周學習總結

目錄

[toc]html

教材學習內容總結(教材第一章內容)

1.簡單學習計算機和Java的最最最最基礎知識,完成個人第一個Java程序,以及做業PP1.3,PP1.8。java

2.面向對象編程思想(舉個例子:五子棋):git

  • 面向過程(首先分析問題的步驟):一、開始遊戲,二、黑子先走,三、繪製畫面,四、判斷輸贏,五、輪到白子,六、繪製畫面,七、判斷輸贏,八、返回步驟2,九、輸出最後結果。把上面每一個步驟用分別的函數來實現。編程

  • 面向對象:一、黑白雙方,這兩方的行爲是如出一轍的;二、棋盤系統,負責繪製畫面;三、規則系統,負責斷定諸如犯規、輸贏等。第一類對象(玩家對象)負責接受用戶輸入,並告知第二類對象(棋盤對象)棋子佈局的變化,棋盤對象接收到了棋子的i變化就要負責在屏幕上面顯示出這種變化,同時利用第三類對象(規則系統)來對棋局進行斷定。 面向對象的通俗解釋vim

3.java運行步驟:數組

  • .java文件->編譯->.class文件frontend

  • .class字節碼->jvm(java虛擬機,也叫JDK)解釋->執行。jvm

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

  • 問題1:支持面向對象程序設計的基本概念是什麼?(SRA1.8)
  • 問題1解決方案:課本答案:支持面向對象程序設計的基本元素:對象,類,封裝,繼承。
  • 問題2:標識符args有什麼意義,能夠用其餘標識符替換嗎?
  • 問題2解決方案:java規定main方法參數必須爲字符串數組(String [ ]),args是一個字符串數組的變量名(arguments的縮寫),只是一個默認名,通常習慣性照寫。
  • 問題3:爲何其餘許多語言在編譯時將源代碼直接轉爲具體的機器語言,而編譯運行Java程序過程當中須要字節碼做爲中間步驟?
  • 問題3解決方案:咱們編寫的程序在不一樣的平臺上運行前都要通過從新編譯才能被執行。而Java剛誕生的時候曾經提過一個很是著名的宣傳口號: "一次編寫,處處運行"。 可運行在許多不一樣平臺的JVM虛擬機都擁有一個共同的功能:能夠載入和執行同一種與平臺無關的字節碼(ByteCode)。 這樣源代碼再也不必須根據不一樣平臺翻譯成0和1,而是間接翻譯成字節碼,儲存字節碼的文件再交由運行於不一樣平臺上的JVM虛擬機去讀取執行,從而實現一次編寫,處處運行的目的。

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

  • 問題1:當install時,給出下面提示:編輯器

    E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unavailable)
    E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it?
  • 問題1解決方案: 一、kill當前進程(百度提供,但沒成功...) 二、刪除鎖定文件(成功)函數

    sudo rm /var/lib/dpkg/lock-frontend
    sudo rm /var/lib/dpkg/lock
  • 問題2::在apt-get update vim的時候,提示(和問題1相似):

    E: Could not get lock /var/cache/ apt/archives/lock - open (11 Resource temporarily unavailable) 
    E: Unable to lock the download directory
  • 問題2解決方案:

    sudo rm -rf /var/cache/apt/archives/lock 
    sudo apt-get update
  • 問題3:git push後,提示:

    ! [rejected]      master -> master (fetch first)
    error: failed to push some refs to 'https://gitee.com/zhang_duanyun/GitGit.git'
    hint: Updates were rejected because the tip of your current branch is behind its remote counterpart.
    hint: Integrate the remote changes before pushing again.
    hint: (e.g.'git pull …')
    hint: See the ‘Note about fast-forwards’ in ‘git push --help’ for details.
  • 問題3解決方案:在碼雲新建過項目後複製連接,git clone以後會在Home目錄下自動建立一個和項目名稱相同的目錄,要進入項目名稱目錄下git push

代碼託管

上週考試錯題總結

  • 判斷:Linux Bash中, 可使用man printf查看C語言中printf函數的幫助文檔。 (x)
  • 分析:man 3 printf纔是真正的查詢C庫函數裏的printf函數
  • 填空:Linux Bash中,(cheat find )命令能夠查年find命令的使用示例。
  • 分析:

cheat命令簡單來講,就是告訴你一個命令如何使用。它沒有提供其餘額外多餘的信息,只經過使用實例告訴你一個命令如何使用。

結對及互評

點評

  • 博客中值得學習的或問題:
    • 博客總體內容翔實,對課本知識有着深刻的學習和思考。
    • 改進:教材學習內容總結部分能夠再簡潔一些。
  • 基於評分標準,我給本博客打分:13分。得分狀況以下:
  • 語法正確(1)、要素齊全(1)、排版簡潔(1)、感想真實(1)。總結了不少問題和解決方案(6),如實記錄了學習時間(1),結對學習狀況真實可信(1),有動手敲新代碼(1)。

本週結對學習狀況

  • 20182311

  • 結對照片

  • 結對學習內容

    • 討論字節碼在Java程序編譯執行過程當中的做用。機器碼是電腦CPU可直接讀取的數據,但不一樣CPU有不一樣機器碼與之對應。字節碼是源代碼轉換爲機器碼的中間狀態,在運行時經過JVM(JAVA虛擬機)作一次轉換生成機器指令,所以能使Java程序更好的跨平臺運行。
    • 互幫互助完成vim配置,互對討論教材課後練習題答案。

感悟

正式學習Java的第一週,配置vim編輯器(加入頭部註釋、行號、高亮等一系列對敲代碼友好的功能),並經過添加頁面定製CSS代碼使本身的博客園頁面更美觀(接下來但願在寫博客過程當中摸索一些讓本身博客排版更清楚美觀的方法),在這些過程當中不停地碰壁,不停地尋找如何解決,因爲還什麼都不懂,因此只能經過嘗試來確認本身搜到的解決方式是否是正確,終於體會到什麼叫「沒有結果就是最好的結果」。

除此以外,在剛開始敲最簡單的代碼時,發現本身很容易丟三落四(eg.System‘S'忘記大寫,String寫成Strings等),以後的學習中,必定要細心細心再細心,多動手敲代碼,才能知道本身會犯什麼錯誤而且及時改正。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 10000行 30篇 400小時
第一週 254/254 2/2 21/21 開始編寫簡單的程序
  • 計劃學習時間:20小時

  • 實際學習時間:21小時

參考資料

相關文章
相關標籤/搜索