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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

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

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

20145204 《Java程序設(shè)計(jì)》第6周學(xué)習(xí)總結(jié)

教材學(xué)習(xí)內(nèi)容總結(jié)

第十章 輸入/輸出

數(shù)據(jù)流

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

    • InputStream不關(guān)心數(shù)據(jù)源來自何種設(shè)備(鍵盤,文件,網(wǎng)絡(luò));
      OutputStream不關(guān)心數(shù)據(jù)的目的是何種設(shè)備(鍵盤,文件,網(wǎng)絡(luò))

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

    • 子類一: FileInputStream,FileOutputStream。適用于文件的創(chuàng)建和讀寫。這兩個(gè)子類在不使用時(shí)都要用close()關(guān)閉文檔。

    • 子類二:ByteArryInputStream,ByteArryOutputStream。指定byte數(shù)組創(chuàng)建實(shí)例,一旦創(chuàng)建就可將byte數(shù)組當(dāng)做數(shù)據(jù)源進(jìn)行讀寫。

      Reader與Writer

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

    線程

    • 單線程:
      啟動(dòng)的程序從main()程序進(jìn)入點(diǎn)開始至結(jié)束只有一個(gè)流程。

    • 多線程:要設(shè)計(jì)程序可以擁有多個(gè)程序。即在main以外獨(dú)立設(shè)計(jì)流程。

    實(shí)現(xiàn)多線程

  • 撰寫類操作**java.lang.Runnable接口。操作進(jìn)入點(diǎn):run();
  • 創(chuàng)建Thread實(shí)例來執(zhí)行Runnable實(shí)例定義的run()方法,啟動(dòng)線程執(zhí)行指定的線程,調(diào)用Thread實(shí)例的start()方法。
  • 繼承Thread類。
  • 并行API

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

    Lock、ReadWriteLock

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

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

    代碼調(diào)試中的問題和解決過程

    如上圖所示,用紅線標(biāo)注的地方是我習(xí)慣性的刪減代碼所導(dǎo)致的錯(cuò)誤,將鼠標(biāo)光標(biāo)移動(dòng)到該錯(cuò)誤的位置顯示如下圖:

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

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

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

    結(jié)果是沒有兔子的身影:

    于是利用剛學(xué)的斷點(diǎn)調(diào)試程序發(fā)現(xiàn)flags的值是null:

    終于經(jīng)過了認(rèn)真排查有了正確結(jié)果顯示:

    如果再運(yùn)行一次會(huì)出現(xiàn)不一樣的結(jié)果:

    本周代碼托管截圖

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

    本周在經(jīng)過一次試驗(yàn)后,我覺得對(duì)于java的運(yùn)行環(huán)境有新的了解,對(duì)于代碼調(diào)試什么的有可以熟練的運(yùn)用對(duì)于我將來的自己編代碼有了很大的用處。而且本周還解決了一直對(duì)于java的包,類,項(xiàng)目的關(guān)系的理解,受益頗深。

    學(xué)習(xí)進(jìn)度條

    代碼行數(shù)(新增/累積)博客量(新增/累積)學(xué)習(xí)時(shí)間(新增/累積)重要成長(zhǎng)
    目標(biāo)3500行30篇400小時(shí)
    第一周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學(xué)習(xí)筆記(第8版)
    • 《Java學(xué)習(xí)筆記(第8版)》學(xué)習(xí)指導(dǎo)
    • ...

    轉(zhuǎn)載于:https://www.cnblogs.com/yayaer/p/5376320.html

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。