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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《程序设计与数据结构》第6周学习总结

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

20162308 2016-2017-2 《程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)》第6周學(xué)習(xí)總結(jié)

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

  • 類的繼承
  • 代碼復(fù)用
  • 抽象類 abstract
  • 方法重載 Override
  • 多線程 Multi-Threading
  • 教材學(xué)習(xí)中的問題和解決過程

    • 1 關(guān)于多重繼承
    • 一致認(rèn)為,在面對對象中添加多重繼承的特性對程序員來說,至少是像我這樣沒什么經(jīng)驗(yàn)的初學(xué)者來說,是一件非常困難的事。繼承應(yīng)該是一種"is-a"的邏輯,那么多重繼承在這個(gè)角度上來說就是不合邏輯的。所以,萬幸,Java沒有在設(shè)計(jì)的時(shí)候引入這個(gè)特性。
    • 2 線程、進(jìn)程 (Thread & Process)
    • 閱讀材料:
      線程和進(jìn)程的區(qū)別是什么?
      《Java編程思想》
    • 去年,好想也是四月初的時(shí)候,當(dāng)時(shí)我在杭電面試,當(dāng)時(shí)說到了自己設(shè)計(jì)的爬蟲中實(shí)現(xiàn)了 Producer- Consumer 的多線程模型,然后那幾個(gè)老師就問我線程和進(jìn)程有什么區(qū)別。那個(gè)時(shí)候,我自己其實(shí)也搞不懂線程和進(jìn)程有什么區(qū)別,我就瞎扯了幾句。回去以后,自己查了一些資料,也對進(jìn)程和線程有了一些理解。進(jìn)程是CPU資源分配的最小單位,線程是依附于進(jìn)程而存在的調(diào)度,一個(gè)進(jìn)程中可以存在多個(gè)線程。

      利用對象,可將一個(gè)程序分割成相互獨(dú)立的區(qū)域。我們通常也需要將一個(gè)程序轉(zhuǎn)換成多個(gè)獨(dú)立運(yùn)行的子任務(wù)。像這樣的每個(gè)子任務(wù)都叫作一個(gè)“線程”(Thread)。編寫程序時(shí),可將每個(gè)線程都想象成獨(dú)立運(yùn)行,而且都有自己的專用CPU。一些基礎(chǔ)機(jī)制實(shí)際會(huì)為我們自動(dòng)分割CPU的時(shí)間。我們通常不必關(guān)心這些細(xì)節(jié)問題,所以多線程的代碼編寫是相當(dāng)簡便的。 這時(shí)理解一些定義對以后的學(xué)習(xí)狠有幫助。“進(jìn)程”是指一種“自包容”的運(yùn)行程序,有自己的地址空間。 “多任務(wù)”操作系統(tǒng)能同時(shí)運(yùn)行多個(gè)進(jìn)程(程序)——但實(shí)際是由于CPU分時(shí)機(jī)制的作用,使每個(gè)進(jìn)程都能 循環(huán)獲得自己的CPU時(shí)間片。但由于輪換速度非常快,使得所有程序好象是在“同時(shí)”運(yùn)行一樣。“線程” 是進(jìn)程內(nèi)部單一的一個(gè)順序控制流。因此,一個(gè)進(jìn)程可能容納了多個(gè)同時(shí)執(zhí)行的線程。 多線程的應(yīng)用范圍很廣。但在一般情況下,程序的一些部分同特定的事件或資源聯(lián)系在一起,同時(shí)又不想為 它而暫停程序其他部分的執(zhí)行。這樣一來,就可考慮創(chuàng)建一個(gè)線程,令其與那個(gè)事件或資源關(guān)聯(lián)到一起,并讓它獨(dú)立于主程序運(yùn)行。一個(gè)很好的例子便是“Quit”或“退出”按鈕——我們并不希望在程序的每一部分代碼中都輪詢這個(gè)按鈕,同時(shí)又希望該按鈕能及時(shí)地作出響應(yīng)(使程序看起來似乎經(jīng)常都在輪詢它)。 ——《Think in Java》

    //example: using class Thread //SimpleThread.java public class SimpleThread extends Thread{private int countDown = 5;private static int threadCount = 0;private int threadNumber = ++threadCount;public SimpleThread(){System.out.println("Making" + threadNumber);}public void run(){while(true){System.out.println("Thread " + threadNumber + "(" + countDown + ")");if(--countDown == 0)return;}}public static void main(String[] args) {for(int i = 0; i < 5; i++)new SimpleThread().start();System.out.println("All Threads Started");} } //example: using interface Runable //SimpleRunable.java class MyRunable implements Runnable{private String name;MyRunable(String name){this.name = name;}@Overridepublic void run() {try {Thread.sleep(1000);System.out.println(name + "+1s");Thread.sleep(1000);System.out.println(name + "+2s");} catch (Exception e) {System.out.println("Against Basic Law");}} } public class SimpleRunable{public static void main(String[] args) {MyRunable mr1 = new MyRunable("T1");MyRunable mr2 = new MyRunable("T2");Thread t1 = new Thread(mr1);Thread t2 = new Thread(mr2);t1.start();t2.start();} }

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

    • 多線程的程序運(yùn)行時(shí)運(yùn)行太快,不能觀察到順序。
    • 使用Thread.sleep(Math.Random() * 1000)來減慢速度。

    代碼托管

    • 代碼提交過程 & 代碼量截圖:

    上周考試錯(cuò)題總結(jié)

    沒有考試

    結(jié)對及互評

    張師瑜的博客注意學(xué)習(xí)方法,書上的代碼關(guān)鍵是理解,理解了再根據(jù)書上的思路,自己敲一遍。

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

    • 關(guān)于代碼復(fù)用
    • 代碼復(fù)用是一件能夠很大的提高生產(chǎn)力的工作,通過梳理程序的邏輯結(jié)構(gòu),建立清晰合理的面對對象模型,實(shí)現(xiàn)接口或繼承抽象類,來實(shí)現(xiàn)需求。也就是說,不要重復(fù)造輪子。利用已有的代碼,應(yīng)用到當(dāng)前的需求中,提高效率。

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

    代碼行數(shù)(新增/累積)博客量(新增/累積)學(xué)習(xí)時(shí)間(新增/累積)重要成長
    目標(biāo)5000行30篇400小時(shí)
    第一周26/261/17/7
    第二周81/1071/28/15String類型的使用
    第三周80/1871/35/20位運(yùn)算
    第四周300/4871/48/28動(dòng)態(tài)數(shù)組和迭代器
    第五周132/6191/518/46OOP編程導(dǎo)論
    第六周90/7091/65/51多線程
    • 計(jì)劃學(xué)習(xí)時(shí)間:5小時(shí)

    • 實(shí)際學(xué)習(xí)時(shí)間:8小時(shí)

    參考資料

    • 《Java程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)教程(第二版)》

    • 《Java程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)教程(第二版)》學(xué)習(xí)指導(dǎo)

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

    總結(jié)

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

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