日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

20145204 《Java程序设计》第6周学习总结

發布時間:2025/3/15 java 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 20145204 《Java程序设计》第6周学习总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20145204 《Java程序設計》第6周學習總結

教材學習內容總結

第十章 輸入/輸出

數據流

  • I/O操作主要是指使用Java進行輸入,輸出操作. Java所有的I/O機制都是基于數據流進行輸入輸出。
  • Java將輸入/輸出抽象化為串流,數據有來源及目的地,銜接兩者的是串流對象.如果要將數據從來源取出,可以使用輸入傳流,如果要將數據寫入目的地,可以使用輸出串流。
  • 在java中,輸入串流代表對象為java.io.InputStream實例,輸出串流代表對象為java.io.OutStream實例。
  • InputStream與OutputStream

    • InputStream不關心數據源來自何種設備(鍵盤,文件,網絡);
      OutputStream不關心數據的目的是何種設備(鍵盤,文件,網絡)

    • 提供串流基本操作,如果想要為輸入/輸出的數據做加工處理,則可以使用打包器類。

    • 子類一: FileInputStream,FileOutputStream。適用于文件的創建和讀寫。這兩個子類在不使用時都要用close()關閉文檔。

    • 子類二:ByteArryInputStream,ByteArryOutputStream。指定byte數組創建實例,一旦創建就可將byte數組當做數據源進行讀寫。

      Reader與Writer

  • 字符數據的讀取:java.io.Reader類,其抽象化了字符數據讀入的來源;字符數據的寫入:java.io.Writer類。其抽象化了數據寫出的目的地。
  • 第十一章 線程與并行API線程

    線程

    • 單線程:
      啟動的程序從main()程序進入點開始至結束只有一個流程。

    • 多線程:要設計程序可以擁有多個程序。即在main以外獨立設計流程。

    實現多線程

  • 撰寫類操作**java.lang.Runnable接口。操作進入點:run();
  • 創建Thread實例來執行Runnable實例定義的run()方法,啟動線程執行指定的線程,調用Thread實例的start()方法。
  • 繼承Thread類。
  • 并行API

    使用Thread建立多線程程序,必須親自處理synchornized、對象鎖定、wait()、notify()、notifyAll()等細節,如果需要的是線程池、讀寫解鎖高等級操作,從JDK5之后提供了java.util.concurrent,可基于其中的API建立更穩固的并行應用程序。
    并行API可以分為以下幾個類.
    1.Lock、ReadWriter與Condition
    2.使用Executor
    3.并行Collection

    Lock、ReadWriteLock

    • lock接口主要操作類之一為ReentrantLock,可以達到synchronized的作用。

    • ReadWriteLock接口定義了讀取鎖定與寫入鎖定行為,可以使用readLock()、writeLock()方法返回Lock操作對象。
    • StampedLock類可支持了樂觀讀取操作。也就是若讀取線程很多,寫入線程很少的情況下,你可以樂觀地認為,寫入與讀取同時發生的機會很少,因此不悲觀的使用哇暖的讀取鎖定,程序可以查看數據讀取之后,是否遭到寫入線程的變更,再采取后續的措施。

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

    如上圖所示,用紅線標注的地方是我習慣性的刪減代碼所導致的錯誤,將鼠標光標移動到該錯誤的位置顯示如下圖:

    說是一定要用數組的形式定義,我仔細看了看代碼,想這可能是由于代碼中下面這句代碼的原因。

    boolean sleep=flags[(int)((Math.random()*10)%2)];

    于是我就直接將代碼修改改成這樣:private boolean flags[]={};

    結果是沒有兔子的身影:

    于是利用剛學的斷點調試程序發現flags的值是null:

    終于經過了認真排查有了正確結果顯示:

    如果再運行一次會出現不一樣的結果:

    本周代碼托管截圖

    其他(感悟、思考等,可選)

    本周在經過一次試驗后,我覺得對于java的運行環境有新的了解,對于代碼調試什么的有可以熟練的運用對于我將來的自己編代碼有了很大的用處。而且本周還解決了一直對于java的包,類,項目的關系的理解,受益頗深。

    學習進度條

    代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
    目標3500行30篇400小時
    第一周100/1001/120/20
    第二周200/3001/230/50
    第三周300/6001/328/78
    第四周300/9001/420/98
    第五周300/9001/530/128
    第六周300/12002/632/ 160

    參考資料

    • Java學習筆記(第8版)
    • 《Java學習筆記(第8版)》學習指導
    • ...

    轉載于:https://www.cnblogs.com/yayaer/p/5376320.html

    總結

    以上是生活随笔為你收集整理的20145204 《Java程序设计》第6周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。