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

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

教材學習內容總結

  • 進程與線程
    • 進程是程序的一次動態執行過程,它對應了從代碼加載、執行至執行完畢的一個完整過程。
    • 線程是比進程更小的執行單位
  • Java中的進程
    • 計算機在任何給定的時刻只能執行那些線程中的一個
    • Java語言使用Thread類及其子類的對象來表示線程
    • 線程建立後僅僅是佔用了內存資源,必須調用start()方法通知JVM
    • 程序必須在子類中重寫父類的run()方法
    • sleep(int millsecond)方法使當前線程進入休眠狀態,wait()方法使當前線程進入等待狀態
    • 所謂死亡狀態就是線程釋放了實體,即釋放分配給線程對象的內存
  • Thread類與線程的建立
    • 使用Thread建立線程一般使用的構造方法是Thread(Runnable target)
    • 目標對象與線程徹底解耦的狀況下,目標對象須要經過得到線程的名字來肯定可以是哪一個線程正在佔用CPU;目標對象組合線程中,目標對象能夠得到線程對象的引用
  • 經常使用方法
    • start();
    • run(),在線程沒有結束run()以前,不要再讓線程調用start()方法,不然將發生IllegalThreadStateException異常
    • sleep(int millsecond)必須在try-catch語句塊中調用sleep方法
    • isAlive();
    • currentThread()返回當前正在使用CPU資源的線程
    • interrupt();
  • 線程同步機制:當一個線程A使用synchronized方法時,時就必須等待,知道線程A使用完synchronized方法
  • 不能夠在非同步方法中使用wait(),notify(),notifyAll()
  • A在運行期間使用Join()聯合B,那麼A線程馬上終端執行,一直等待B執行結束,A再從新排隊等待CPU資源
  • AWT-EventQuecue線程負責處理GUI事件,AWT-Windows線程負責將窗體或組件繪製到桌面

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

  • 問題1:編譯例子1是出現以下錯誤

  • 問題1解決方法:添加encoding 參數:javac -encoding gbk Example12_1.java,而後運行成功

代碼託管

(statistics.sh腳本的運行結果截圖)html

上週考試錯題總結

  • 錯題1

  • 理解狀況:Xammp是一個功能強大的建站集成軟件包,能夠在其中建立數據庫
  • 錯題2

  • 理解狀況:數據操做語言是指對錶中數據的查詢、插入、刪除和修改
  • 錯題3

  • 理解狀況:java.sql.SQLException: Unknown column 'sid' in 'field list' 意爲「字段列表」中有未知列「SID」

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 37/37 1/1 15/15
第二週 398/429 2/3 15/30
第三週 753/1167 1/4 20/50
第四周 1296/2109 2/6 20/70
第五週 1191/3323 2/8 20/90
第六週 1806/4390 2/10 15/105
第七週 1260/5145 2/12 15/120
第八週 606/5745 3/15 20/140

參考資料

相關文章
相關標籤/搜索