版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、12 1. 了解計(jì)算機(jī)的組成及運(yùn)行原理,了了解計(jì)算機(jī)的組成及運(yùn)行原理,了解簡(jiǎn)單機(jī)器語(yǔ)言程序的執(zhí)行特征;解簡(jiǎn)單機(jī)器語(yǔ)言程序的執(zhí)行特征; 2. 理解匯編語(yǔ)言指令與機(jī)器語(yǔ)言指令理解匯編語(yǔ)言指令與機(jī)器語(yǔ)言指令的關(guān)系,理解高級(jí)語(yǔ)言與匯編語(yǔ)言的的關(guān)系,理解高級(jí)語(yǔ)言與匯編語(yǔ)言的關(guān)系,理解編譯程序或編譯器的功能關(guān)系,理解編譯程序或編譯器的功能與作用,初步理解掌握?qǐng)?zhí)行程序的過(guò)與作用,初步理解掌握?qǐng)?zhí)行程序的過(guò)程;程; 3. 了解高級(jí)語(yǔ)言發(fā)展簡(jiǎn)史;初步理解了解高級(jí)語(yǔ)言發(fā)展簡(jiǎn)史;初步理解操作系統(tǒng)、客戶操作系統(tǒng)、客戶/服務(wù)器以及服務(wù)器以及Internet和和WWW的基本概念。的基本概念。3 4. 了解了解Java語(yǔ)言的
2、特點(diǎn),理解語(yǔ)言的特點(diǎn),理解Java程序上機(jī)執(zhí)行過(guò)程,掌握簡(jiǎn)單的程序上機(jī)執(zhí)行過(guò)程,掌握簡(jiǎn)單的Java 應(yīng)用程序和應(yīng)用程序和Java applet程序的基本程序的基本結(jié)構(gòu),能上機(jī)執(zhí)行結(jié)構(gòu),能上機(jī)執(zhí)行Java 應(yīng)用程序和應(yīng)用程序和Java applet程序;能初步使用格式程序;能初步使用格式化輸入輸出語(yǔ)句?;斎胼敵稣Z(yǔ)句。 5. 初步理解對(duì)象和類(lèi)的概念,掌握初步理解對(duì)象和類(lèi)的概念,掌握表示它們的表示它們的UML圖形符號(hào)。圖形符號(hào)。 4 1.1計(jì)算機(jī)、計(jì)算機(jī)、Internet和和WWW 1.2 Java語(yǔ)言語(yǔ)言 1.3 Java程序程序 1.4 對(duì)象與統(tǒng)一建模語(yǔ)言對(duì)象與統(tǒng)一建模語(yǔ)言UML 5 1.2
3、Java語(yǔ)言語(yǔ)言 1.3 Java程序程序 1.4 對(duì)象與統(tǒng)一建模語(yǔ)言對(duì)象與統(tǒng)一建模語(yǔ)言UML6 Java語(yǔ)言是當(dāng)今最為成功的計(jì)算機(jī)高級(jí)語(yǔ)言之語(yǔ)言是當(dāng)今最為成功的計(jì)算機(jī)高級(jí)語(yǔ)言之一,是開(kāi)發(fā)互聯(lián)網(wǎng)應(yīng)用的重要語(yǔ)言。它是富有一,是開(kāi)發(fā)互聯(lián)網(wǎng)應(yīng)用的重要語(yǔ)言。它是富有經(jīng)驗(yàn)的程序員或計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)的學(xué)生不經(jīng)驗(yàn)的程序員或計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)的學(xué)生不能不學(xué)習(xí)的語(yǔ)言,事實(shí)上,它是許多各類(lèi)學(xué)校能不學(xué)習(xí)的語(yǔ)言,事實(shí)上,它是許多各類(lèi)學(xué)校計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)學(xué)生的一門(mén)課程。通過(guò)對(duì)計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)學(xué)生的一門(mén)課程。通過(guò)對(duì)它的學(xué)習(xí),學(xué)生將熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)基本它的學(xué)習(xí),學(xué)生將熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)基本知識(shí)和基本技能,并積累
4、面向?qū)ο缶幊探?jīng)驗(yàn),知識(shí)和基本技能,并積累面向?qū)ο缶幊探?jīng)驗(yàn),掌握當(dāng)流行的應(yīng)用程序開(kāi)發(fā)技術(shù),而這正是掌握當(dāng)流行的應(yīng)用程序開(kāi)發(fā)技術(shù),而這正是Java語(yǔ)言程序設(shè)計(jì)教材語(yǔ)言程序設(shè)計(jì)教材主要目的之一。本主要目的之一。本章是學(xué)習(xí)章是學(xué)習(xí)Java語(yǔ)言程序設(shè)計(jì)的一個(gè)簡(jiǎn)短入門(mén)。語(yǔ)言程序設(shè)計(jì)的一個(gè)簡(jiǎn)短入門(mén)。7 我們操作過(guò)計(jì)算機(jī)的人都知道,計(jì)算機(jī)我們操作過(guò)計(jì)算機(jī)的人都知道,計(jì)算機(jī)就是一種設(shè)備,它能讓我們進(jìn)行文字處就是一種設(shè)備,它能讓我們進(jìn)行文字處理,繪制圖形,玩游戲,聽(tīng)音樂(lè),制作理,繪制圖形,玩游戲,聽(tīng)音樂(lè),制作動(dòng)畫(huà),上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影,動(dòng)畫(huà),上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影,等等。這是從計(jì)算機(jī)應(yīng)用角度上的認(rèn)識(shí),等
5、等。這是從計(jì)算機(jī)應(yīng)用角度上的認(rèn)識(shí),實(shí)際上,計(jì)算機(jī)是能夠以比人快幾百萬(wàn)實(shí)際上,計(jì)算機(jī)是能夠以比人快幾百萬(wàn)甚至幾十億倍的速度執(zhí)行計(jì)算和邏輯判甚至幾十億倍的速度執(zhí)行計(jì)算和邏輯判斷的設(shè)備。這種說(shuō)法可能讓人感到有點(diǎn)斷的設(shè)備。這種說(shuō)法可能讓人感到有點(diǎn)神奇甚至迷惑神奇甚至迷惑:8 “文字處理、繪制圖形、玩游戲、制作動(dòng)文字處理、繪制圖形、玩游戲、制作動(dòng)畫(huà)、聽(tīng)音樂(lè)、上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)畫(huà)、聽(tīng)音樂(lè)、上網(wǎng)查詢信息和觀看網(wǎng)絡(luò)電影等電影等”是怎樣與是怎樣與“執(zhí)行計(jì)算和邏輯判執(zhí)行計(jì)算和邏輯判斷斷”聯(lián)系起來(lái)呢?聯(lián)系起來(lái)呢? 實(shí)際上,我們使用的計(jì)算機(jī)即計(jì)算機(jī)系實(shí)際上,我們使用的計(jì)算機(jī)即計(jì)算機(jī)系統(tǒng)包含兩大部分,一是硬件本身,
6、它包統(tǒng)包含兩大部分,一是硬件本身,它包括鍵盤(pán)、鼠標(biāo)、顯示器、磁盤(pán)和主機(jī)括鍵盤(pán)、鼠標(biāo)、顯示器、磁盤(pán)和主機(jī)(箱)等;另一是軟件。(箱)等;另一是軟件。9 計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏輯計(jì)算機(jī)硬件本身提供了執(zhí)行計(jì)算和邏輯判斷的功能,這些功能表現(xiàn)為一組指令,判斷的功能,這些功能表現(xiàn)為一組指令,如加法指令、減法指令、取數(shù)指令、存如加法指令、減法指令、取數(shù)指令、存數(shù)指令、輸入指令和輸出指令以及邏輯數(shù)指令、輸入指令和輸出指令以及邏輯判斷類(lèi)指令等;判斷類(lèi)指令等; 而軟件是程序員利用計(jì)算機(jī)指令集,規(guī)而軟件是程序員利用計(jì)算機(jī)指令集,規(guī)劃組織完成令我們激動(dòng)的玩游戲、聽(tīng)音劃組織完成令我們激動(dòng)的玩游戲、聽(tīng)音樂(lè)和制作
7、動(dòng)畫(huà)等計(jì)算機(jī)應(yīng)用的特定指令樂(lè)和制作動(dòng)畫(huà)等計(jì)算機(jī)應(yīng)用的特定指令序列。軟件也可簡(jiǎn)稱為程序。實(shí)際上,序列。軟件也可簡(jiǎn)稱為程序。實(shí)際上,10 軟件與程序是不等價(jià)的,簡(jiǎn)單說(shuō),軟件軟件與程序是不等價(jià)的,簡(jiǎn)單說(shuō),軟件 = 程序程序 + 相關(guān)文檔資料。相關(guān)文檔資料。 計(jì)算機(jī)硬件是在程序的指令集控制下處計(jì)算機(jī)硬件是在程序的指令集控制下處理數(shù)據(jù)的。計(jì)算機(jī)程序控制著計(jì)算機(jī),理數(shù)據(jù)的。計(jì)算機(jī)程序控制著計(jì)算機(jī),使它按順序執(zhí)行一系列動(dòng)作,這些動(dòng)作使它按順序執(zhí)行一系列動(dòng)作,這些動(dòng)作是由程序員規(guī)劃的,并用指令描述的。是由程序員規(guī)劃的,并用指令描述的。 各種計(jì)算機(jī)無(wú)論外觀差別有多大,每一各種計(jì)算機(jī)無(wú)論外觀差別有多大,每一臺(tái)計(jì)算
8、機(jī)實(shí)際上都可劃分為五個(gè)邏輯單臺(tái)計(jì)算機(jī)實(shí)際上都可劃分為五個(gè)邏輯單元(或稱五大部分),如圖元(或稱五大部分),如圖1-1所示。所示。 11計(jì)算程序輸入設(shè)備輸出設(shè)備外存儲(chǔ)器外部設(shè)備接口內(nèi)存運(yùn)算器控制器原始數(shù)據(jù)計(jì)算結(jié)果取數(shù)存數(shù)指令指令數(shù)據(jù)線控制信號(hào)線圖1-1計(jì)算機(jī)的基本組成12 1)輸入單元。輸入單元是計(jì)算機(jī)接收信)輸入單元。輸入單元是計(jì)算機(jī)接收信息的部分。它從各種輸入設(shè)備讀取信息息的部分。它從各種輸入設(shè)備讀取信息(數(shù)據(jù)和計(jì)算機(jī)程序),并把這些放置(數(shù)據(jù)和計(jì)算機(jī)程序),并把這些放置到其它處理信息的單元中。當(dāng)今計(jì)算機(jī)到其它處理信息的單元中。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過(guò)鍵盤(pán)輸入的,但也的大多數(shù)信息是通過(guò)鍵
9、盤(pán)輸入的,但也逐漸出現(xiàn)使用其它許多輸入設(shè)備來(lái)進(jìn)行逐漸出現(xiàn)使用其它許多輸入設(shè)備來(lái)進(jìn)行信息輸入,如掃描儀、聲音輸入設(shè)備等。信息輸入,如掃描儀、聲音輸入設(shè)備等。13 2)輸出單元。輸出單元是計(jì)算機(jī)輸出信)輸出單元。輸出單元是計(jì)算機(jī)輸出信息的部分。它把計(jì)算機(jī)處理過(guò)的信息放息的部分。它把計(jì)算機(jī)處理過(guò)的信息放置到各種輸出設(shè)備中,從而使這些信息置到各種輸出設(shè)備中,從而使這些信息能夠被計(jì)算機(jī)外部使用。當(dāng)今計(jì)算機(jī)的能夠被計(jì)算機(jī)外部使用。當(dāng)今計(jì)算機(jī)的大多數(shù)信息是通過(guò)屏幕顯示和紙張打印大多數(shù)信息是通過(guò)屏幕顯示和紙張打印輸出的,同時(shí)也出現(xiàn)使用其它許多輸出輸出的,同時(shí)也出現(xiàn)使用其它許多輸出設(shè)備來(lái)進(jìn)行信息輸出,如音箱等。
10、設(shè)備來(lái)進(jìn)行信息輸出,如音箱等。14 3)內(nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中存?。﹥?nèi)存單元。內(nèi)存單元是計(jì)算機(jī)中存取速度快、容量相對(duì)較少的儲(chǔ)存部分。它速度快、容量相對(duì)較少的儲(chǔ)存部分。它能夠記憶來(lái)自輸入單元的信息,因而能能夠記憶來(lái)自輸入單元的信息,因而能夠在需要的時(shí)候立即處理這些信息。內(nèi)夠在需要的時(shí)候立即處理這些信息。內(nèi)存單元還能夠記憶被處理過(guò)的信息,直存單元還能夠記憶被處理過(guò)的信息,直到輸出單元把信息放到輸出設(shè)備上。內(nèi)到輸出單元把信息放到輸出設(shè)備上。內(nèi)存單元經(jīng)常被稱為內(nèi)存或主存。內(nèi)存在存單元經(jīng)常被稱為內(nèi)存或主存。內(nèi)存在計(jì)算機(jī)電源關(guān)閉后將不起作用。計(jì)算機(jī)電源關(guān)閉后將不起作用。15 4)中央處理單元()中央
11、處理單元(CPU)。中央處理單)。中央處理單元是計(jì)算機(jī)中的元是計(jì)算機(jī)中的“加工加工”和和“管理管理”部部分。它負(fù)責(zé)執(zhí)行各種計(jì)算如加、減、乘、分。它負(fù)責(zé)執(zhí)行各種計(jì)算如加、減、乘、除等,負(fù)責(zé)邏輯判斷如比較內(nèi)存中的兩除等,負(fù)責(zé)邏輯判斷如比較內(nèi)存中的兩個(gè)數(shù)是否相等,這部分又稱為運(yùn)算器。個(gè)數(shù)是否相等,這部分又稱為運(yùn)算器。同時(shí),它還是計(jì)算機(jī)的協(xié)調(diào)者,負(fù)責(zé)管同時(shí),它還是計(jì)算機(jī)的協(xié)調(diào)者,負(fù)責(zé)管理對(duì)其它部分的操作,這部分又稱為控理對(duì)其它部分的操作,這部分又稱為控制器。在應(yīng)該把信息讀到內(nèi)存單元中時(shí),制器。在應(yīng)該把信息讀到內(nèi)存單元中時(shí),CPU就會(huì)向輸入設(shè)備發(fā)出請(qǐng)求;就會(huì)向輸入設(shè)備發(fā)出請(qǐng)求;16 當(dāng)要把內(nèi)存中信息用于
12、計(jì)算時(shí),當(dāng)要把內(nèi)存中信息用于計(jì)算時(shí),CPU會(huì)會(huì)把這種請(qǐng)求通知其內(nèi)部的運(yùn)算器;當(dāng)要把這種請(qǐng)求通知其內(nèi)部的運(yùn)算器;當(dāng)要把內(nèi)存中的信息發(fā)送給某個(gè)輸出設(shè)備時(shí),把內(nèi)存中的信息發(fā)送給某個(gè)輸出設(shè)備時(shí),CPU就會(huì)告訴輸出設(shè)備。就會(huì)告訴輸出設(shè)備。 5)二級(jí)存儲(chǔ)單元。二級(jí)存儲(chǔ)單元是計(jì)算)二級(jí)存儲(chǔ)單元。二級(jí)存儲(chǔ)單元是計(jì)算機(jī)中可以長(zhǎng)久保存信息的高容量存儲(chǔ)部機(jī)中可以長(zhǎng)久保存信息的高容量存儲(chǔ)部分。沒(méi)有被其它單元使用的程序和數(shù)據(jù)分。沒(méi)有被其它單元使用的程序和數(shù)據(jù)通常放在二級(jí)存儲(chǔ)單元中(如磁盤(pán)),通常放在二級(jí)存儲(chǔ)單元中(如磁盤(pán)),17 這些信息可能需要幾個(gè)小時(shí)、幾天、幾這些信息可能需要幾個(gè)小時(shí)、幾天、幾個(gè)月甚至幾年才會(huì)被使用
13、。二級(jí)存儲(chǔ)單個(gè)月甚至幾年才會(huì)被使用。二級(jí)存儲(chǔ)單元也稱為外存儲(chǔ)器,外存或稱為輔存。元也稱為外存儲(chǔ)器,外存或稱為輔存。 計(jì)算機(jī)運(yùn)行的過(guò)程,就是順次執(zhí)行程序計(jì)算機(jī)運(yùn)行的過(guò)程,就是順次執(zhí)行程序中指令的過(guò)程。計(jì)算機(jī)的指令以及運(yùn)行中指令的過(guò)程。計(jì)算機(jī)的指令以及運(yùn)行時(shí)數(shù)據(jù)都是采用二進(jìn)制數(shù)表示的。下面時(shí)數(shù)據(jù)都是采用二進(jìn)制數(shù)表示的。下面舉一個(gè)簡(jiǎn)單的例子說(shuō)明計(jì)算機(jī)的運(yùn)行。舉一個(gè)簡(jiǎn)單的例子說(shuō)明計(jì)算機(jī)的運(yùn)行。18 例例1.1 設(shè)計(jì)一個(gè)程序,其運(yùn)行后接受用設(shè)計(jì)一個(gè)程序,其運(yùn)行后接受用戶輸入的兩個(gè)數(shù),然后計(jì)算其平均值,戶輸入的兩個(gè)數(shù),然后計(jì)算其平均值,并輸出結(jié)果。并輸出結(jié)果。 解答:解決問(wèn)題的過(guò)程為:解答:解決問(wèn)題的過(guò)程
14、為:1)輸入兩個(gè)數(shù)存放于變量)輸入兩個(gè)數(shù)存放于變量a和和b中;中;2)計(jì)算)計(jì)算(a+b)/2,并將其結(jié)果存儲(chǔ)于變量,并將其結(jié)果存儲(chǔ)于變量X中;中;3)輸出)輸出X中的值;中的值; 19 當(dāng)用計(jì)算機(jī)的指令來(lái)完成上述過(guò)程時(shí),當(dāng)用計(jì)算機(jī)的指令來(lái)完成上述過(guò)程時(shí),需要考慮到計(jì)算機(jī)的具體特性,如計(jì)算需要考慮到計(jì)算機(jī)的具體特性,如計(jì)算機(jī)中沒(méi)有變量,而是用存儲(chǔ)單元來(lái)表示機(jī)中沒(méi)有變量,而是用存儲(chǔ)單元來(lái)表示等。完成上述過(guò)程的指令序列及其運(yùn)行等。完成上述過(guò)程的指令序列及其運(yùn)行時(shí)在內(nèi)存的存儲(chǔ)布局如圖時(shí)在內(nèi)存的存儲(chǔ)布局如圖1-2所示。所示。20圖1-2計(jì)算X=(a+b)/2指令序列(表示a)00000100內(nèi)存內(nèi)存單
15、元地址(表示b)00000101(表示X)0000011010000110 011000000000011110100010 00000100 000000000000100110000110 011000000000110010100010 00000101 000000000000111010100000 00000100 000000000001000100000000 11000000 00000101 000000000001010010110001 000000100001100011110110 111100010001101010100010 00000110 00000000
16、0001110010111010 11010101 00000011000111111110111000100010111101000010001121 例子說(shuō)明:每例子說(shuō)明:每8位二進(jìn)制數(shù)稱為一個(gè)字節(jié)位二進(jìn)制數(shù)稱為一個(gè)字節(jié)(Byte),每一條指令用若干個(gè)字節(jié)的),每一條指令用若干個(gè)字節(jié)的二進(jìn)制代碼表示,并存儲(chǔ)到內(nèi)存單元中。二進(jìn)制代碼表示,并存儲(chǔ)到內(nèi)存單元中。最小內(nèi)存單元為最小內(nèi)存單元為1個(gè)字節(jié),它必須用一個(gè)個(gè)字節(jié),它必須用一個(gè)編號(hào)來(lái)表示,這個(gè)編號(hào)稱為單元地址。編號(hào)來(lái)表示,這個(gè)編號(hào)稱為單元地址。在圖在圖1-2中我們并沒(méi)有把每個(gè)單元的地中我們并沒(méi)有把每個(gè)單元的地址標(biāo)出來(lái),只標(biāo)出每條指令代碼存儲(chǔ)的
17、址標(biāo)出來(lái),只標(biāo)出每條指令代碼存儲(chǔ)的起始單元的地址。起始單元的地址。22 圖圖1-2中的開(kāi)始三個(gè)字節(jié)存儲(chǔ)單元分別中的開(kāi)始三個(gè)字節(jié)存儲(chǔ)單元分別表示變量表示變量a、b和和X,用于存儲(chǔ)它們的值。,用于存儲(chǔ)它們的值。其它存儲(chǔ)單元用于存儲(chǔ)指令,這些指令其它存儲(chǔ)單元用于存儲(chǔ)指令,這些指令的含義解釋如下。的含義解釋如下。 第一條指令用第一條指令用2個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10000110 01100000”表示表示CPU從輸入設(shè)備讀進(jìn)一從輸入設(shè)備讀進(jìn)一個(gè)數(shù)(個(gè)數(shù)(a)并放置到寄存器)并放置到寄存器AL中。中。23 第二條指令用第二條指令用3個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10100010 00000100 0000000
18、0”表示表示CPU把寄把寄存器存器AL中數(shù)放置到內(nèi)存中地址編號(hào)為中數(shù)放置到內(nèi)存中地址編號(hào)為00000100的存儲(chǔ)單元(的存儲(chǔ)單元(1個(gè)字節(jié))中保個(gè)字節(jié))中保存。其中第存。其中第3個(gè)字節(jié)數(shù)據(jù)和第個(gè)字節(jié)數(shù)據(jù)和第2個(gè)字節(jié)數(shù)個(gè)字節(jié)數(shù)據(jù)合成一個(gè)據(jù)合成一個(gè)16位二進(jìn)制數(shù)據(jù)(即位二進(jìn)制數(shù)據(jù)(即00000000 00000100),表示存儲(chǔ)單),表示存儲(chǔ)單元(元(a)的地址。)的地址。24 第三條指令用第三條指令用2個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10000110 01100000”表示表示CPU從輸入設(shè)備讀進(jìn)一從輸入設(shè)備讀進(jìn)一個(gè)數(shù)(個(gè)數(shù)(b)并放置到寄存器)并放置到寄存器AL中;中; 第四條指令用第四條指令用3個(gè)字節(jié)
19、數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10100010 00000101 00000000”表示表示CPU把寄把寄存器存器AL中數(shù)放置到內(nèi)存中地址編號(hào)為中數(shù)放置到內(nèi)存中地址編號(hào)為00000101的存儲(chǔ)單元(的存儲(chǔ)單元(1個(gè)字節(jié))中保個(gè)字節(jié))中保存。其中第存。其中第3個(gè)字節(jié)數(shù)據(jù)和第個(gè)字節(jié)數(shù)據(jù)和第2個(gè)字節(jié)數(shù)個(gè)字節(jié)數(shù)據(jù)合成一個(gè)據(jù)合成一個(gè)16位二進(jìn)制數(shù)據(jù)(即位二進(jìn)制數(shù)據(jù)(即25 即即00000000 00000101),表示存儲(chǔ)),表示存儲(chǔ)單元(單元(b)的地址。)的地址。 第五條指令用第五條指令用3個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10100000 00000100 00000000”表示表示CPU從內(nèi)從內(nèi)存中地址編號(hào)為存中地址編號(hào)
20、為00000100的存儲(chǔ)單元的存儲(chǔ)單元讀進(jìn)讀進(jìn)1個(gè)字節(jié)數(shù)據(jù)(個(gè)字節(jié)數(shù)據(jù)(a)并放置到)并放置到AL寄存寄存器中。器中。26 第六條指令用第六條指令用4個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“00000000 11000000 00000101 00000000”表示表示CPU把內(nèi)存中地址編號(hào)為把內(nèi)存中地址編號(hào)為00000101存儲(chǔ)單元的數(shù)據(jù)(存儲(chǔ)單元的數(shù)據(jù)(b)加到)加到AL寄存器中。寄存器中。 第七條指令用第七條指令用2個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10110001 00000010”表示表示CPU把數(shù)把數(shù)00000010即即2存儲(chǔ)到存儲(chǔ)到CL寄存器中。寄存器中。27 第八條指令用第八條指令用2個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“
21、11110110 11110001”表示表示CPU用用CL中數(shù)支除中數(shù)支除AL寄寄存器中數(shù),其結(jié)果存儲(chǔ)在存器中數(shù),其結(jié)果存儲(chǔ)在AL寄存器中。寄存器中。 第九條指令用第九條指令用3個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10100010 00000110 00000000”表示表示CPU把寄把寄存器存器AL中數(shù)傳送到內(nèi)存中地址編號(hào)為中數(shù)傳送到內(nèi)存中地址編號(hào)為00000110的存儲(chǔ)單元(的存儲(chǔ)單元(X)中保存;)中保存;28 第十條指令用第十條指令用3個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“10111010 11010101 00000011”表示表示CPU把數(shù)把數(shù)00000011 11010101即即03D5H(十(十六進(jìn)制)存儲(chǔ)
22、到六進(jìn)制)存儲(chǔ)到DX寄存器中;寄存器中;03D5H表表示顯示器的端口號(hào)。示顯示器的端口號(hào)。 第十一條指令用第十一條指令用1個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“11101110”表示表示CPU把把AL寄存器中數(shù)寄存器中數(shù)送到送到DX寄存器所指向的端口連接的設(shè)備寄存器所指向的端口連接的設(shè)備即顯示器。即顯示器。29 第十二條指令用第十二條指令用1個(gè)字節(jié)數(shù)據(jù)個(gè)字節(jié)數(shù)據(jù)“11110100”表示表示CPU停止執(zhí)行指令。停止執(zhí)行指令。 計(jì)算機(jī)的指令集也稱為機(jī)器語(yǔ)言,上述計(jì)算機(jī)的指令集也稱為機(jī)器語(yǔ)言,上述的指令序列也稱為機(jī)器語(yǔ)言程序。注意,的指令序列也稱為機(jī)器語(yǔ)言程序。注意,該例子中用漢語(yǔ)描述計(jì)算過(guò)程時(shí)的每一該例子中用漢語(yǔ)
23、描述計(jì)算過(guò)程時(shí)的每一步,在用機(jī)器語(yǔ)言描述時(shí)需要多條指令。步,在用機(jī)器語(yǔ)言描述時(shí)需要多條指令。 30 機(jī)器語(yǔ)言就是計(jì)算機(jī)機(jī)器語(yǔ)言就是計(jì)算機(jī)CPU的指令集合,的指令集合,用它表示的計(jì)算程序即機(jī)器語(yǔ)言程序可用它表示的計(jì)算程序即機(jī)器語(yǔ)言程序可以直接由計(jì)算機(jī)執(zhí)行。我們所謂的使用以直接由計(jì)算機(jī)執(zhí)行。我們所謂的使用計(jì)算機(jī),其它實(shí)質(zhì)就是通過(guò)使用機(jī)器語(yǔ)計(jì)算機(jī),其它實(shí)質(zhì)就是通過(guò)使用機(jī)器語(yǔ)言來(lái)完成計(jì)算任務(wù),所以從這個(gè)角度上言來(lái)完成計(jì)算任務(wù),所以從這個(gè)角度上講,機(jī)器語(yǔ)言就是機(jī)器的講,機(jī)器語(yǔ)言就是機(jī)器的“代表代表”或或“化身化身”。 但機(jī)器語(yǔ)言程序難理解,因?yàn)闄C(jī)器指令但機(jī)器語(yǔ)言程序難理解,因?yàn)闄C(jī)器指令是用二進(jìn)制數(shù)據(jù)表示
24、的。為了便于記憶、是用二進(jìn)制數(shù)據(jù)表示的。為了便于記憶、31 理解機(jī)器指令或機(jī)器語(yǔ)言程序,人們用理解機(jī)器指令或機(jī)器語(yǔ)言程序,人們用字母符號(hào)來(lái)表示機(jī)器指令,這種字母符字母符號(hào)來(lái)表示機(jī)器指令,這種字母符號(hào)一般用一個(gè)有意義單詞的前幾個(gè)字母號(hào)一般用一個(gè)有意義單詞的前幾個(gè)字母組成,如組成,如ADD表示加法指令,表示加法指令,MOV表示表示傳送數(shù)據(jù)等等。符號(hào)化的指令稱為匯編傳送數(shù)據(jù)等等。符號(hào)化的指令稱為匯編指令,匯編指令的集合稱為匯編語(yǔ)言,指令,匯編指令的集合稱為匯編語(yǔ)言,用它表示的程序稱為匯編語(yǔ)言程序。用它表示的程序稱為匯編語(yǔ)言程序。 上節(jié)例子中的機(jī)器語(yǔ)言程序?qū)?yīng)的匯編上節(jié)例子中的機(jī)器語(yǔ)言程序?qū)?yīng)的匯編語(yǔ)
25、言程序?yàn)橄卤碛也糠炙荆赫Z(yǔ)言程序?yàn)橄卤碛也糠炙荆?3233 將該匯編語(yǔ)言程序與上節(jié)機(jī)器語(yǔ)言程序比較,將該匯編語(yǔ)言程序與上節(jié)機(jī)器語(yǔ)言程序比較,我們可以發(fā)現(xiàn)每一條匯編語(yǔ)言指令與每一條我們可以發(fā)現(xiàn)每一條匯編語(yǔ)言指令與每一條機(jī)器指令基本上是一一對(duì)應(yīng)的。注意,該匯機(jī)器指令基本上是一一對(duì)應(yīng)的。注意,該匯編語(yǔ)言程序中,方括號(hào)中的數(shù)表示存儲(chǔ)單元編語(yǔ)言程序中,方括號(hào)中的數(shù)表示存儲(chǔ)單元地址,這個(gè)數(shù)前后加上方括號(hào),表示以該數(shù)地址,這個(gè)數(shù)前后加上方括號(hào),表示以該數(shù)為地址的存儲(chǔ)單元內(nèi)容,如第為地址的存儲(chǔ)單元內(nèi)容,如第2條匯編指令條匯編指令中,中,0100表示地址為表示地址為00000100的存儲(chǔ)單的存儲(chǔ)單元(元(a)
26、,寄存器中的數(shù)(),寄存器中的數(shù)(a)將被放置在)將被放置在其中;其中;34 不加方括號(hào)的數(shù)表示一般數(shù)據(jù),如第不加方括號(hào)的數(shù)表示一般數(shù)據(jù),如第10條匯編指令中,條匯編指令中,03D5H表示表示16進(jìn)制數(shù)值進(jìn)制數(shù)值03D5,將被放置到寄存器,將被放置到寄存器DX中。中。 匯編語(yǔ)言可以看作是機(jī)器語(yǔ)言的抽象,匯編語(yǔ)言可以看作是機(jī)器語(yǔ)言的抽象,事實(shí)上,它是通過(guò)符號(hào)化機(jī)器代碼來(lái)實(shí)事實(shí)上,它是通過(guò)符號(hào)化機(jī)器代碼來(lái)實(shí)現(xiàn)的?,F(xiàn)的。 然而用匯編語(yǔ)言表示人類(lèi)社會(huì)的計(jì)算,然而用匯編語(yǔ)言表示人類(lèi)社會(huì)的計(jì)算,也不大方便和直觀,如上例中的也不大方便和直觀,如上例中的35 “MOV DX 03D5H和和OUT DX AL”
27、是用于是用于“輸出數(shù)據(jù)輸出數(shù)據(jù)”,這兩者之間幾乎,這兩者之間幾乎看不出有什么直觀的聯(lián)系。于是出現(xiàn)了看不出有什么直觀的聯(lián)系。于是出現(xiàn)了所謂的高級(jí)語(yǔ)言作為對(duì)匯編語(yǔ)言的抽象,所謂的高級(jí)語(yǔ)言作為對(duì)匯編語(yǔ)言的抽象,使得指令更加使得指令更加“概念化概念化”,以便更接近,以便更接近我們的自然語(yǔ)言層次。用高級(jí)語(yǔ)言表示我們的自然語(yǔ)言層次。用高級(jí)語(yǔ)言表示的程序稱為高級(jí)語(yǔ)言程序。的程序稱為高級(jí)語(yǔ)言程序。Java語(yǔ)言就語(yǔ)言就是一種高級(jí)語(yǔ)言,用它寫(xiě)出類(lèi)似上述例是一種高級(jí)語(yǔ)言,用它寫(xiě)出類(lèi)似上述例子的程序是:子的程序是: 36 1 public class average 2 public static void main
28、(String args) 3 int a = 12, b = 34, c ; 4 c = (a+b)/2; 5 System.out.println(“The average is:”+c); 6 7 37 輸出結(jié)果:輸出結(jié)果: The average is: 23 程序說(shuō)明:這里的程序說(shuō)明:這里的Java程序由一個(gè)所謂程序由一個(gè)所謂的類(lèi)構(gòu)成,第的類(lèi)構(gòu)成,第1行是該類(lèi)的開(kāi)始,定義了行是該類(lèi)的開(kāi)始,定義了名為名為average的類(lèi),第的類(lèi),第7行以行以來(lái)結(jié)束該類(lèi)來(lái)結(jié)束該類(lèi)的定義。的定義。 類(lèi)一般包含多個(gè)方法,類(lèi)一般包含多個(gè)方法,average類(lèi)只含一類(lèi)只含一個(gè)名為個(gè)名為main的主方法,它由方
29、法頭部即的主方法,它由方法頭部即38 第第2行開(kāi)始到第行開(kāi)始到第6行結(jié)束,其包含三句即行結(jié)束,其包含三句即第第3、4、5行,其中第行,其中第3行聲明三個(gè)整型行聲明三個(gè)整型變量變量a、b和和c,分別存放兩個(gè)整數(shù)和它們,分別存放兩個(gè)整數(shù)和它們的平均值。第的平均值。第4行計(jì)算出行計(jì)算出a和和b的平均值,的平均值,并存放到(賦值給)變量并存放到(賦值給)變量c中。第中。第5行從行從屏幕上輸出文字屏幕上輸出文字“The average is:”和和結(jié)果即結(jié)果即c的值。的值。 注:上述注:上述java程序中,每行開(kāi)始的數(shù)字程序中,每行開(kāi)始的數(shù)字不是程序中的部分,它是作者加上的,不是程序中的部分,它是作者加
30、上的,39 用來(lái)表示行號(hào),以便解釋每行程序時(shí),用來(lái)表示行號(hào),以便解釋每行程序時(shí),指明是哪一行。指明是哪一行。 可見(jiàn),高級(jí)語(yǔ)言要比匯編語(yǔ)言容易理解可見(jiàn),高級(jí)語(yǔ)言要比匯編語(yǔ)言容易理解和記憶,事實(shí)上,它的抽象程度比匯編和記憶,事實(shí)上,它的抽象程度比匯編語(yǔ)言的高,并且更語(yǔ)言的高,并且更“接近接近”我們?nèi)祟?lèi)的我們?nèi)祟?lèi)的語(yǔ)言,如高級(jí)語(yǔ)言中的變量就是存儲(chǔ)單語(yǔ)言,如高級(jí)語(yǔ)言中的變量就是存儲(chǔ)單元的抽象。元的抽象。 注:這里每一句如注:這里每一句如c=(a+b)/2對(duì)應(yīng)了完成對(duì)應(yīng)了完成相應(yīng)計(jì)算的多條匯編語(yǔ)句。相應(yīng)計(jì)算的多條匯編語(yǔ)句。40 采用高級(jí)語(yǔ)言完成我們的計(jì)算任務(wù),確采用高級(jí)語(yǔ)言完成我們的計(jì)算任務(wù),確實(shí)要比機(jī)
31、器語(yǔ)言和匯編語(yǔ)言較自然和直實(shí)要比機(jī)器語(yǔ)言和匯編語(yǔ)言較自然和直觀。但是,計(jì)算機(jī)畢竟只能執(zhí)行機(jī)器指觀。但是,計(jì)算機(jī)畢竟只能執(zhí)行機(jī)器指令,所以,當(dāng)我們編寫(xiě)出高級(jí)語(yǔ)言程序令,所以,當(dāng)我們編寫(xiě)出高級(jí)語(yǔ)言程序后,還得將它轉(zhuǎn)換成對(duì)應(yīng)的機(jī)器語(yǔ)言程后,還得將它轉(zhuǎn)換成對(duì)應(yīng)的機(jī)器語(yǔ)言程序,才能使計(jì)算機(jī)去執(zhí)行計(jì)算。序,才能使計(jì)算機(jī)去執(zhí)行計(jì)算。 完成這種轉(zhuǎn)換的過(guò)程稱為程序翻譯。完成這種轉(zhuǎn)換的過(guò)程稱為程序翻譯。 程序翻譯猶如是現(xiàn)實(shí)中的語(yǔ)言翻譯,也程序翻譯猶如是現(xiàn)實(shí)中的語(yǔ)言翻譯,也41 有兩種方式即有兩種方式即“筆譯筆譯”和和“口譯口譯”。 筆譯就是一次完整地翻譯并記錄在紙上,筆譯就是一次完整地翻譯并記錄在紙上,然后可以復(fù)
32、印多份,同時(shí)供多人閱讀。然后可以復(fù)印多份,同時(shí)供多人閱讀。 而口譯是在實(shí)際場(chǎng)景中,邊講邊口頭翻而口譯是在實(shí)際場(chǎng)景中,邊講邊口頭翻譯,同樣的話說(shuō)兩次,就得口譯兩次。譯,同樣的話說(shuō)兩次,就得口譯兩次。顯然??谧g快,筆譯慢;口譯效率低,顯然??谧g快,筆譯慢;口譯效率低,筆譯效率高。筆譯效率高。42 對(duì)程序翻譯而言,其對(duì)程序翻譯而言,其“筆譯筆譯”稱為編譯,稱為編譯,其其“口譯口譯”稱為解釋?zhuān)⑶揖幾g和解釋稱為解釋?zhuān)⑶揖幾g和解釋工作是由專(zhuān)門(mén)的程序來(lái)完成的,這種翻工作是由專(zhuān)門(mén)的程序來(lái)完成的,這種翻譯程序分別稱為編譯程序和解釋程序。譯程序分別稱為編譯程序和解釋程序。 在編譯過(guò)程,被翻譯的語(yǔ)言程序也稱為在
33、編譯過(guò)程,被翻譯的語(yǔ)言程序也稱為源程序,相應(yīng)地翻譯結(jié)果稱為目標(biāo)程序,源程序,相應(yīng)地翻譯結(jié)果稱為目標(biāo)程序,并且當(dāng)源程序是匯編語(yǔ)言程序是,對(duì)應(yīng)并且當(dāng)源程序是匯編語(yǔ)言程序是,對(duì)應(yīng)的翻譯程序稱為匯編程序,如圖的翻譯程序稱為匯編程序,如圖1-3所所示。示。4344 注意:由上可以看出采用機(jī)器語(yǔ)言、匯注意:由上可以看出采用機(jī)器語(yǔ)言、匯編語(yǔ)言和高級(jí)語(yǔ)言分別表示同一個(gè)計(jì)算編語(yǔ)言和高級(jí)語(yǔ)言分別表示同一個(gè)計(jì)算時(shí),雖然它們采用的命令或語(yǔ)句的數(shù)目時(shí),雖然它們采用的命令或語(yǔ)句的數(shù)目不相同,特征也各異,但它們所包含的不相同,特征也各異,但它們所包含的內(nèi)在計(jì)算步驟或過(guò)程是相同的。在后面內(nèi)在計(jì)算步驟或過(guò)程是相同的。在后面我們
34、將把這種我們將把這種“計(jì)算步驟或過(guò)程計(jì)算步驟或過(guò)程”稱為稱為算法。算法。45 上個(gè)世紀(jì)上個(gè)世紀(jì)50年代早期,開(kāi)始出現(xiàn)符號(hào)年代早期,開(kāi)始出現(xiàn)符號(hào)化語(yǔ)言。格雷斯化語(yǔ)言。格雷斯.霍帕(霍帕(Grace Hopper)領(lǐng)導(dǎo)一個(gè)小組開(kāi)發(fā)了)領(lǐng)導(dǎo)一個(gè)小組開(kāi)發(fā)了A-0語(yǔ)語(yǔ)言,約翰言,約翰.巴克斯為巴克斯為IBM 701開(kāi)發(fā)了加開(kāi)發(fā)了加速代碼。速代碼。 1955年以后,開(kāi)始出現(xiàn)一系列高級(jí)語(yǔ)年以后,開(kāi)始出現(xiàn)一系列高級(jí)語(yǔ)言。言。1955年到年到1957年間,巴克斯領(lǐng)導(dǎo)年間,巴克斯領(lǐng)導(dǎo)一個(gè)組開(kāi)發(fā)了公式翻譯語(yǔ)言一個(gè)組開(kāi)發(fā)了公式翻譯語(yǔ)言46 ALGOrithmic Language,也即,也即ALGOL語(yǔ)言。該語(yǔ)言具有
35、幾個(gè)不同語(yǔ)言。該語(yǔ)言具有幾個(gè)不同的目標(biāo),即的目標(biāo),即 1、ALGOL語(yǔ)言的表示應(yīng)該接近標(biāo)準(zhǔn)語(yǔ)言的表示應(yīng)該接近標(biāo)準(zhǔn)數(shù)學(xué)。數(shù)學(xué)。 2、ALGOL語(yǔ)言對(duì)于描述算法應(yīng)該是語(yǔ)言對(duì)于描述算法應(yīng)該是有用的。有用的。 3、用、用ALGOL語(yǔ)言編寫(xiě)的程序應(yīng)該可語(yǔ)言編寫(xiě)的程序應(yīng)該可編譯為機(jī)器語(yǔ)言程序。編譯為機(jī)器語(yǔ)言程序。47 4、ALGOL語(yǔ)言不局限于某一計(jì)算機(jī)語(yǔ)言不局限于某一計(jì)算機(jī)的體系結(jié)構(gòu)。的體系結(jié)構(gòu)。 正是正是ALGOL語(yǔ)言,引入了傳遞名字語(yǔ)言,引入了傳遞名字參數(shù)的過(guò)程調(diào)用概念,也是為了定義參數(shù)的過(guò)程調(diào)用概念,也是為了定義ALGOL語(yǔ)言,約翰語(yǔ)言,約翰.巴克斯和彼特巴克斯和彼特.瑙爾給出了一種高級(jí)語(yǔ)言的語(yǔ)法
36、描述瑙爾給出了一種高級(jí)語(yǔ)言的語(yǔ)法描述方法,被稱為巴克斯方法,被稱為巴克斯-瑙爾范式,或瑙爾范式,或稱為稱為BNF。ALGOL語(yǔ)言后來(lái)又有了語(yǔ)言后來(lái)又有了兩次發(fā)展分別為兩次發(fā)展分別為ALGOL 60和和48 ALGOL 68。ALGOL語(yǔ)言并沒(méi)有在語(yǔ)言并沒(méi)有在美國(guó)得到推廣。美國(guó)得到推廣。 FORTRAN語(yǔ)言和語(yǔ)言和ALGOL語(yǔ)言都是語(yǔ)言都是基于數(shù)值計(jì)算的語(yǔ)言。基于數(shù)值計(jì)算的語(yǔ)言。 在早期語(yǔ)言的研究與開(kāi)發(fā)的基礎(chǔ)上,在早期語(yǔ)言的研究與開(kāi)發(fā)的基礎(chǔ)上,各種各樣的高級(jí)語(yǔ)言迅速發(fā)展起來(lái),各種各樣的高級(jí)語(yǔ)言迅速發(fā)展起來(lái),多達(dá)幾萬(wàn)種,但得到廣泛應(yīng)用的也就多達(dá)幾萬(wàn)種,但得到廣泛應(yīng)用的也就是十幾種。是十幾種。 49
37、5051 在前面,為了便于寫(xiě)出完成計(jì)算的程序,在前面,為了便于寫(xiě)出完成計(jì)算的程序,引入了高級(jí)語(yǔ)言,而用高級(jí)語(yǔ)言寫(xiě)程序引入了高級(jí)語(yǔ)言,而用高級(jí)語(yǔ)言寫(xiě)程序確實(shí)要比用匯編語(yǔ)言和機(jī)器語(yǔ)言來(lái)得方確實(shí)要比用匯編語(yǔ)言和機(jī)器語(yǔ)言來(lái)得方便和直觀,但由此也改變了我們運(yùn)行程便和直觀,但由此也改變了我們運(yùn)行程序的過(guò)程。序的過(guò)程。 一般地,運(yùn)行一個(gè)高級(jí)語(yǔ)言程序需要經(jīng)一般地,運(yùn)行一個(gè)高級(jí)語(yǔ)言程序需要經(jīng)歷三個(gè)步驟歷三個(gè)步驟: 第一就是要把源程序正確無(wú)誤地輸入到第一就是要把源程序正確無(wú)誤地輸入到計(jì)算機(jī)內(nèi)部,這一步稱為編輯源程序計(jì)算機(jī)內(nèi)部,這一步稱為編輯源程序52 并且是通過(guò)運(yùn)行一個(gè)所謂的編輯程序并且是通過(guò)運(yùn)行一個(gè)所謂的編輯程
38、序來(lái)完成的;來(lái)完成的; 第二步就是運(yùn)行編譯程序,來(lái)把源程第二步就是運(yùn)行編譯程序,來(lái)把源程序翻譯成目標(biāo)程序;序翻譯成目標(biāo)程序; 第三步就是運(yùn)行該目標(biāo)程序,完成特第三步就是運(yùn)行該目標(biāo)程序,完成特定的計(jì)算。定的計(jì)算。 如圖如圖1-4所示所示.53圖1-4 高級(jí)語(yǔ)言程序運(yùn)行過(guò)程編輯器高級(jí)語(yǔ)言源程序機(jī)器語(yǔ)言程序(目標(biāo)程序)源程序文本編譯器執(zhí)行目標(biāo)程序第1步:編輯第2步:編譯第3步:運(yùn)行54 我們運(yùn)行程序時(shí),并不是簡(jiǎn)單地直接使用我們運(yùn)行程序時(shí),并不是簡(jiǎn)單地直接使用計(jì)算機(jī)硬件來(lái)進(jìn)行,而是通過(guò)運(yùn)行在計(jì)算計(jì)算機(jī)硬件來(lái)進(jìn)行,而是通過(guò)運(yùn)行在計(jì)算機(jī)中的所謂操作系統(tǒng)來(lái)完成的。操作系統(tǒng)機(jī)中的所謂操作系統(tǒng)來(lái)完成的。操作系統(tǒng)
39、是計(jì)算機(jī)中最重要的程序,用來(lái)管理和控是計(jì)算機(jī)中最重要的程序,用來(lái)管理和控制 計(jì) 算 機(jī) 的 活 動(dòng) 。 我 們 經(jīng) 常 使 用 的制 計(jì) 算 機(jī) 的 活 動(dòng) 。 我 們 經(jīng) 常 使 用 的Windows 2000、XP或或ME,就是一種常,就是一種常用的操作系統(tǒng)。沒(méi)有操作系統(tǒng),應(yīng)用程序用的操作系統(tǒng)。沒(méi)有操作系統(tǒng),應(yīng)用程序(如字處理程序、(如字處理程序、Internet瀏覽器等)瀏覽器等)就不能運(yùn)行。硬件、操作系統(tǒng)、應(yīng)用程序就不能運(yùn)行。硬件、操作系統(tǒng)、應(yīng)用程序和用戶之間的關(guān)系如圖和用戶之間的關(guān)系如圖1-5所示。所示。5556 1. 控制和監(jiān)督系統(tǒng)的活動(dòng)控制和監(jiān)督系統(tǒng)的活動(dòng)操作系統(tǒng)要對(duì)系統(tǒng)的安全負(fù)
40、責(zé),要確保沒(méi)操作系統(tǒng)要對(duì)系統(tǒng)的安全負(fù)責(zé),要確保沒(méi)有權(quán)限的用戶不能訪問(wèn)系統(tǒng),要確保系統(tǒng)有權(quán)限的用戶不能訪問(wèn)系統(tǒng),要確保系統(tǒng)信息不受到破壞,要確保合法的操作得到信息不受到破壞,要確保合法的操作得到執(zhí)行,還要確保不同程序和用戶在同時(shí)使執(zhí)行,還要確保不同程序和用戶在同時(shí)使用計(jì)算機(jī)時(shí)不會(huì)相互干擾。操作系統(tǒng)不必用計(jì)算機(jī)時(shí)不會(huì)相互干擾。操作系統(tǒng)不必須提供一些基本功能,如,識(shí)別鍵盤(pán)輸入,須提供一些基本功能,如,識(shí)別鍵盤(pán)輸入,向顯示器發(fā)送輸出,保存文件和目錄,控向顯示器發(fā)送輸出,保存文件和目錄,控制硬盤(pán)驅(qū)動(dòng)器和打印機(jī)等。制硬盤(pán)驅(qū)動(dòng)器和打印機(jī)等。57 2. 分配系統(tǒng)資源分配系統(tǒng)資源 操作系統(tǒng)負(fù)責(zé)確定程序需要使用哪
41、些操作系統(tǒng)負(fù)責(zé)確定程序需要使用哪些計(jì)算機(jī)資源(計(jì)算機(jī)資源(CPU、內(nèi)存、磁盤(pán)、輸入和、內(nèi)存、磁盤(pán)、輸入和輸出設(shè)備),并進(jìn)行資源分配以便運(yùn)行程輸出設(shè)備),并進(jìn)行資源分配以便運(yùn)行程序;程序結(jié)束時(shí)還要回收資源。序;程序結(jié)束時(shí)還要回收資源。 3. 安排操作的順序安排操作的順序 操作系統(tǒng)還要負(fù)責(zé)安排和確定程序的操作系統(tǒng)還要負(fù)責(zé)安排和確定程序的執(zhí)行順序,以便有效地利用資源。為了增執(zhí)行順序,以便有效地利用資源。為了增強(qiáng)系統(tǒng)的性能,目前許多操作系統(tǒng)支持多強(qiáng)系統(tǒng)的性能,目前許多操作系統(tǒng)支持多道程序設(shè)計(jì)、多線程和多處理技術(shù)。道程序設(shè)計(jì)、多線程和多處理技術(shù)。58 多道程序設(shè)計(jì)允許多個(gè)程序同時(shí)運(yùn)行,共多道程序設(shè)計(jì)允許
42、多個(gè)程序同時(shí)運(yùn)行,共享享CPU。例如,。例如,Web瀏覽器下載文件的同瀏覽器下載文件的同時(shí),我們可以用字處理程序來(lái)編輯文件。時(shí),我們可以用字處理程序來(lái)編輯文件。 線程是程序中可同時(shí)運(yùn)行的基本單。多線線程是程序中可同時(shí)運(yùn)行的基本單。多線程允許一個(gè)程序內(nèi)部同時(shí)有多個(gè)程允許一個(gè)程序內(nèi)部同時(shí)有多個(gè)“子程序子程序”并發(fā)處理,即可以同時(shí)運(yùn)行。例如,并發(fā)處理,即可以同時(shí)運(yùn)行。例如,Word字處理程序允許用戶編輯文字的同字處理程序允許用戶編輯文字的同時(shí)將其保存到文件中。這里編輯和保存就時(shí)將其保存到文件中。這里編輯和保存就是同一個(gè)應(yīng)用程序中的兩個(gè)不同任務(wù)。是同一個(gè)應(yīng)用程序中的兩個(gè)不同任務(wù)。 多處理也稱為并行處理
43、,是指用兩個(gè)或多多處理也稱為并行處理,是指用兩個(gè)或多個(gè)處理器一起執(zhí)行同一任務(wù)。個(gè)處理器一起執(zhí)行同一任務(wù)。59 客戶客戶/服務(wù)器是網(wǎng)絡(luò)系統(tǒng)中應(yīng)用廣泛的服務(wù)器是網(wǎng)絡(luò)系統(tǒng)中應(yīng)用廣泛的一種技術(shù),它的用法有點(diǎn)混亂??蛻粢环N技術(shù),它的用法有點(diǎn)混亂??蛻?服務(wù)器有兩種用法服務(wù)器有兩種用法: 一種用來(lái)指網(wǎng)絡(luò)上作為提供信息共享一種用來(lái)指網(wǎng)絡(luò)上作為提供信息共享服務(wù)的計(jì)算機(jī)和用戶用來(lái)查詢?yōu)g覽網(wǎng)服務(wù)的計(jì)算機(jī)和用戶用來(lái)查詢?yōu)g覽網(wǎng)絡(luò)上信息的計(jì)算機(jī),前者稱為服務(wù)器絡(luò)上信息的計(jì)算機(jī),前者稱為服務(wù)器計(jì)算機(jī)或簡(jiǎn)稱為服務(wù)器,后者稱為客計(jì)算機(jī)或簡(jiǎn)稱為服務(wù)器,后者稱為客戶計(jì)算機(jī)或簡(jiǎn)稱為客戶機(jī)。戶計(jì)算機(jī)或簡(jiǎn)稱為客戶機(jī)。60 另一種用法是
44、指運(yùn)行中的程序(進(jìn)程另一種用法是指運(yùn)行中的程序(進(jìn)程或線程)之間的關(guān)系的處理方式,本或線程)之間的關(guān)系的處理方式,本書(shū)下面開(kāi)始都是指的這種用法。書(shū)下面開(kāi)始都是指的這種用法。 當(dāng)一個(gè)程序在某一時(shí)刻向另一個(gè)程序當(dāng)一個(gè)程序在某一時(shí)刻向另一個(gè)程序提出請(qǐng)求服務(wù)時(shí),則提出請(qǐng)求服務(wù)的提出請(qǐng)求服務(wù)時(shí),則提出請(qǐng)求服務(wù)的程序稱為客戶,而提供服務(wù)的程序稱程序稱為客戶,而提供服務(wù)的程序稱為服務(wù)器。例如,我們通過(guò)為服務(wù)器。例如,我們通過(guò)Internet瀏覽器上網(wǎng)查詢網(wǎng)絡(luò)信息時(shí),它就是瀏覽器上網(wǎng)查詢網(wǎng)絡(luò)信息時(shí),它就是一個(gè)客戶程序,而提供信息的一個(gè)客戶程序,而提供信息的Web就就是服務(wù)器。是服務(wù)器。61 客戶與服務(wù)器的關(guān)系
45、并不是一成不變客戶與服務(wù)器的關(guān)系并不是一成不變的,它們是一種相對(duì)的關(guān)系。在某一的,它們是一種相對(duì)的關(guān)系。在某一時(shí)刻是服務(wù)器的程序,在另一時(shí)刻就時(shí)刻是服務(wù)器的程序,在另一時(shí)刻就有可能成為客戶程序。有可能成為客戶程序。62 Internet互聯(lián)網(wǎng)絡(luò)是上世紀(jì)互聯(lián)網(wǎng)絡(luò)是上世紀(jì)60年代以年代以來(lái),由美國(guó)國(guó)防部投資開(kāi)發(fā)的。最初來(lái),由美國(guó)國(guó)防部投資開(kāi)發(fā)的。最初只是聯(lián)接大約十幾所大學(xué)和研究機(jī)構(gòu)只是聯(lián)接大約十幾所大學(xué)和研究機(jī)構(gòu)的主要計(jì)算機(jī)系統(tǒng)。今天,聯(lián)入的主要計(jì)算機(jī)系統(tǒng)。今天,聯(lián)入Internet的計(jì)算機(jī)數(shù)量已達(dá)幾億臺(tái)。的計(jì)算機(jī)數(shù)量已達(dá)幾億臺(tái)。 WWW(The World Wide Web)是)是Interne
46、t互聯(lián)網(wǎng)絡(luò)上一種最廣泛的應(yīng)互聯(lián)網(wǎng)絡(luò)上一種最廣泛的應(yīng)用技術(shù)或應(yīng)用形式,它使用技術(shù)或應(yīng)用形式,它使Internet互互聯(lián)網(wǎng)絡(luò)上的用戶從世界各地訪問(wèn)多媒聯(lián)網(wǎng)絡(luò)上的用戶從世界各地訪問(wèn)多媒63 體電子信息寶庫(kù)??梢允褂皿w電子信息寶庫(kù)。可以使用WWW查查找和查看所有主題的基于多媒體的文找和查看所有主題的基于多媒體的文檔,可以預(yù)定旅館的房間、購(gòu)買(mǎi)飛機(jī)檔,可以預(yù)定旅館的房間、購(gòu)買(mǎi)飛機(jī)票、注冊(cè)學(xué)習(xí)課程、下載各種資料、票、注冊(cè)學(xué)習(xí)課程、下載各種資料、與朋友聊天、觀看電影、收聽(tīng)實(shí)況直與朋友聊天、觀看電影、收聽(tīng)實(shí)況直播等等。播等等。64 1.3 Java程序程序 1.4 對(duì)象與統(tǒng)一建模語(yǔ)言對(duì)象與統(tǒng)一建模語(yǔ)言UML65
47、 Java是功能齊全的能用程序設(shè)計(jì)語(yǔ)言,是功能齊全的能用程序設(shè)計(jì)語(yǔ)言,可以開(kāi)發(fā)可靠的、要求嚴(yán)格的應(yīng)用程可以開(kāi)發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。序。Java不僅可以開(kāi)發(fā)不僅可以開(kāi)發(fā)Web應(yīng)用程序,應(yīng)用程序,而且還可以開(kāi)發(fā)跨平臺(tái)的獨(dú)立應(yīng)用程而且還可以開(kāi)發(fā)跨平臺(tái)的獨(dú)立應(yīng)用程序,這些程序用于服務(wù)器、臺(tái)式機(jī)、序,這些程序用于服務(wù)器、臺(tái)式機(jī)、移動(dòng)設(shè)備等。移動(dòng)設(shè)備等。66 Java具有許多誘人的特點(diǎn)。這些特點(diǎn)具有許多誘人的特點(diǎn)。這些特點(diǎn)正如正如Sun公司在公司在Java語(yǔ)言白皮書(shū)開(kāi)始語(yǔ)言白皮書(shū)開(kāi)始處所說(shuō),包括處所說(shuō),包括Java是簡(jiǎn)單的、面向?qū)κ呛?jiǎn)單的、面向?qū)ο蟮?、分布式的、解釋型的、健壯的、象的、分布式的、?/p>
48、釋型的、健壯的、安全的、結(jié)構(gòu)中立的、可移植的、高安全的、結(jié)構(gòu)中立的、可移植的、高效的、多線程的以及動(dòng)態(tài)的等。效的、多線程的以及動(dòng)態(tài)的等。1. Java是簡(jiǎn)單的是簡(jiǎn)單的 任何一門(mén)計(jì)算機(jī)語(yǔ)言都不是簡(jiǎn)單的,任何一門(mén)計(jì)算機(jī)語(yǔ)言都不是簡(jiǎn)單的,67 因?yàn)樗麄兌季哂羞M(jìn)行程序設(shè)計(jì)所需要因?yàn)樗麄兌季哂羞M(jìn)行程序設(shè)計(jì)所需要的基本功能和基本成份,需要完成常的基本功能和基本成份,需要完成常規(guī)程序設(shè)計(jì)。但是與程序設(shè)計(jì)語(yǔ)言規(guī)程序設(shè)計(jì)。但是與程序設(shè)計(jì)語(yǔ)言C+相比,相比,Java要顯得簡(jiǎn)單一些。要顯得簡(jiǎn)單一些。Java部分地模仿了部分地模仿了C+,但是進(jìn)行了,但是進(jìn)行了極大的簡(jiǎn)化和改進(jìn)。例如,極大的簡(jiǎn)化和改進(jìn)。例如,C+中的中
49、的指針和多重繼續(xù)常常使程序復(fù)雜化,指針和多重繼續(xù)常常使程序復(fù)雜化,而而Java丟棄了指針,并使用一種所謂丟棄了指針,并使用一種所謂接口(接口(interface)的簡(jiǎn)單概念代替了)的簡(jiǎn)單概念代替了多重繼續(xù)。多重繼續(xù)。68 C+要求程序員自己去進(jìn)行內(nèi)存的分要求程序員自己去進(jìn)行內(nèi)存的分配與回收,而配與回收,而Java采用自動(dòng)內(nèi)存分配采用自動(dòng)內(nèi)存分配與回收。另外,與回收。另外,Java比比C+具有更少具有更少的語(yǔ)言概念,而功能卻更強(qiáng)大。的語(yǔ)言概念,而功能卻更強(qiáng)大。2. Java是面向?qū)ο蟮氖敲嫦驅(qū)ο蟮?Java一開(kāi)始就設(shè)計(jì)為完全面向?qū)ο蟮?,一開(kāi)始就設(shè)計(jì)為完全面向?qū)ο蟮模醇碕ava天生就是面向?qū)ο蟮?/p>
50、。而許多天生就是面向?qū)ο蟮?。而許多面向?qū)ο笳Z(yǔ)言如面向?qū)ο笳Z(yǔ)言如C+,包含了面向過(guò),包含了面向過(guò)程的特征。程的特征。69 所謂面向過(guò)程,指程序是按照問(wèn)題解所謂面向過(guò)程,指程序是按照問(wèn)題解決的既定過(guò)程設(shè)計(jì)而的,它在的運(yùn)行決的既定過(guò)程設(shè)計(jì)而的,它在的運(yùn)行過(guò)程完全符合問(wèn)題解決的既定過(guò)程,過(guò)程完全符合問(wèn)題解決的既定過(guò)程,這就要求設(shè)計(jì)過(guò)程中必須按照(規(guī)定這就要求設(shè)計(jì)過(guò)程中必須按照(規(guī)定的)解決問(wèn)題過(guò)程來(lái)進(jìn)行,即通過(guò)把的)解決問(wèn)題過(guò)程來(lái)進(jìn)行,即通過(guò)把問(wèn)題分解為若干小問(wèn)題來(lái)進(jìn)行求解,問(wèn)題分解為若干小問(wèn)題來(lái)進(jìn)行求解,也即進(jìn)行所謂的功能分解。這樣,設(shè)也即進(jìn)行所謂的功能分解。這樣,設(shè)計(jì)出來(lái)的程序是由一些功能模塊構(gòu)成
51、計(jì)出來(lái)的程序是由一些功能模塊構(gòu)成70 (這種(這種“功能模塊功能模塊”在在C語(yǔ)言中稱為語(yǔ)言中稱為函數(shù)),如圖函數(shù)),如圖1-5所示,該程序是用所示,該程序是用于計(jì)算規(guī)則圖形面積,它被分解為四于計(jì)算規(guī)則圖形面積,它被分解為四個(gè)功能模塊。個(gè)功能模塊。71 而面向?qū)ο笫侵赋绦蚴怯蓪?duì)象構(gòu)成的,而面向?qū)ο笫侵赋绦蚴怯蓪?duì)象構(gòu)成的,這種對(duì)象是問(wèn)題中事物的抽象,它包含這種對(duì)象是問(wèn)題中事物的抽象,它包含數(shù)據(jù)字段和方法;數(shù)據(jù)字段和方法分別數(shù)據(jù)字段和方法;數(shù)據(jù)字段和方法分別用來(lái)表征事物的屬性和行為。面向?qū)ο笥脕?lái)表征事物的屬性和行為。面向?qū)ο筮€提供了對(duì)象的繼承和多態(tài)性,這用來(lái)還提供了對(duì)象的繼承和多態(tài)性,這用來(lái)反映事物
52、之間的關(guān)系。面向?qū)ο笫菍?duì)現(xiàn)反映事物之間的關(guān)系。面向?qū)ο笫菍?duì)現(xiàn)實(shí)世界中事物及其關(guān)系的一種自然的反實(shí)世界中事物及其關(guān)系的一種自然的反映,因而,它便于反映現(xiàn)實(shí)世界的變化,映,因而,它便于反映現(xiàn)實(shí)世界的變化,并且對(duì)付這種變化付出的代價(jià)要比面向并且對(duì)付這種變化付出的代價(jià)要比面向過(guò)程技術(shù)小得多。過(guò)程技術(shù)小得多。72 作為面向?qū)ο蟮淖鳛槊嫦驅(qū)ο蟮腏ava,它提供了封裝、,它提供了封裝、繼承和多態(tài)性,這使得它具有了極大的繼承和多態(tài)性,這使得它具有了極大的靈活性、模塊性、透明性和可重用性。靈活性、模塊性、透明性和可重用性。其中的重用性使我們可以重用代碼。其中的重用性使我們可以重用代碼。3. Java是分布式的是
53、分布式的 分布式計(jì)算是網(wǎng)絡(luò)上的一種高級(jí)應(yīng)用形分布式計(jì)算是網(wǎng)絡(luò)上的一種高級(jí)應(yīng)用形式,它使網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)整合為一式,它使網(wǎng)絡(luò)上的多臺(tái)計(jì)算機(jī)整合為一個(gè)整體(好象一臺(tái)計(jì)算機(jī)一樣),個(gè)整體(好象一臺(tái)計(jì)算機(jī)一樣),73 透明地完成用戶提交的工作。透明地完成用戶提交的工作。Java的的設(shè)計(jì)使分布式計(jì)算變得容易起來(lái),由設(shè)計(jì)使分布式計(jì)算變得容易起來(lái),由于于Java一開(kāi)始就設(shè)計(jì)了網(wǎng)絡(luò)工作能力,一開(kāi)始就設(shè)計(jì)了網(wǎng)絡(luò)工作能力,因而編寫(xiě)網(wǎng)絡(luò)程序如同在文件中存取因而編寫(xiě)網(wǎng)絡(luò)程序如同在文件中存取數(shù)一起。數(shù)一起。4. Java是解釋型的是解釋型的 Java程序運(yùn)行前需要編譯成一種所謂程序運(yùn)行前需要編譯成一種所謂Java虛擬
54、機(jī)(虛擬機(jī)(Java Virtual Machine,JVM)編碼,這種編碼稱)編碼,這種編碼稱74 為字節(jié)碼(為字節(jié)碼(bytecode)。字節(jié)碼獨(dú)立)。字節(jié)碼獨(dú)立于具體的計(jì)算機(jī),運(yùn)行時(shí)需要于具體的計(jì)算機(jī),運(yùn)行時(shí)需要Java解解釋器來(lái)把它轉(zhuǎn)換成本地計(jì)算機(jī)代碼予釋器來(lái)把它轉(zhuǎn)換成本地計(jì)算機(jī)代碼予以完成,所以它能在任何具有以完成,所以它能在任何具有Java解解釋器的機(jī)器上運(yùn)行。如圖釋器的機(jī)器上運(yùn)行。如圖1-6所示是所示是Java程序、程序、Java字節(jié)碼、字節(jié)碼、Java虛擬虛擬機(jī)和計(jì)算機(jī)的關(guān)系。機(jī)和計(jì)算機(jī)的關(guān)系。 7576 大多數(shù)高級(jí)語(yǔ)言的編譯器都把程序編大多數(shù)高級(jí)語(yǔ)言的編譯器都把程序編譯成機(jī)器
55、代碼,這種機(jī)器代碼只能在譯成機(jī)器代碼,這種機(jī)器代碼只能在本地計(jì)算機(jī)上運(yùn)行,如果要在其他計(jì)本地計(jì)算機(jī)上運(yùn)行,如果要在其他計(jì)算機(jī)上運(yùn)行,還得在這些計(jì)算機(jī)上重算機(jī)上運(yùn)行,還得在這些計(jì)算機(jī)上重新編譯。使用新編譯。使用Java,只需要編譯一次,只需要編譯一次,其編譯而成的字節(jié)碼即可以在任何具其編譯而成的字節(jié)碼即可以在任何具有有Java解釋器的平臺(tái)上運(yùn)行。解釋器的平臺(tái)上運(yùn)行。5. Java是健壯的是健壯的 任何一門(mén)程序設(shè)計(jì)語(yǔ)言都不能是絕對(duì)任何一門(mén)程序設(shè)計(jì)語(yǔ)言都不能是絕對(duì)77 可靠的,其編制的程序都有可能發(fā)生可靠的,其編制的程序都有可能發(fā)生這樣或那樣的錯(cuò)誤。所謂健壯的就指這樣或那樣的錯(cuò)誤。所謂健壯的就指避免
56、錯(cuò)誤和處理錯(cuò)誤的能力較強(qiáng)。避免錯(cuò)誤和處理錯(cuò)誤的能力較強(qiáng)。Java丟棄了其他語(yǔ)言中容易引起錯(cuò)誤丟棄了其他語(yǔ)言中容易引起錯(cuò)誤的某些程序概念類(lèi)型,例如,它不支的某些程序概念類(lèi)型,例如,它不支持指針,從而避免了重寫(xiě)內(nèi)存而造成持指針,從而避免了重寫(xiě)內(nèi)存而造成的數(shù)據(jù)破壞的可能性。另一方面,的數(shù)據(jù)破壞的可能性。另一方面,Java具有實(shí)時(shí)異常處理的功能,該特具有實(shí)時(shí)異常處理的功能,該特點(diǎn)有助于提高程序的健壯性。點(diǎn)有助于提高程序的健壯性。Java強(qiáng)強(qiáng)78 制程序員編寫(xiě)處理異常的代碼,所以制程序員編寫(xiě)處理異常的代碼,所以它能夠捕獲并響應(yīng)意外情況,從而發(fā)它能夠捕獲并響應(yīng)意外情況,從而發(fā)生實(shí)時(shí)錯(cuò)誤時(shí)程序能夠繼續(xù)正常執(zhí)
57、行生實(shí)時(shí)錯(cuò)誤時(shí)程序能夠繼續(xù)正常執(zhí)行錯(cuò)誤處理代碼,穩(wěn)妥地結(jié)束。錯(cuò)誤處理代碼,穩(wěn)妥地結(jié)束。5. Java是安全的是安全的 Java一開(kāi)始就是用于一開(kāi)始就是用于Internet程序設(shè)程序設(shè)計(jì)而出現(xiàn)的,網(wǎng)絡(luò)和分布式環(huán)境是它計(jì)而出現(xiàn)的,網(wǎng)絡(luò)和分布式環(huán)境是它的主要用途之一。所以,的主要用途之一。所以,Java在安全在安全上進(jìn)行了精心的考慮,它執(zhí)行多層安上進(jìn)行了精心的考慮,它執(zhí)行多層安79 全機(jī)制用以保護(hù)系統(tǒng)不受到惡意地破全機(jī)制用以保護(hù)系統(tǒng)不受到惡意地破壞,從而使用戶在下載并運(yùn)行一個(gè)壞,從而使用戶在下載并運(yùn)行一個(gè)Java applet(一種特殊的(一種特殊的Java程序,程序,它需要下載到本地計(jì)算機(jī)它需要下
58、載到本地計(jì)算機(jī)Internet瀏瀏覽器中運(yùn)行)時(shí),它不會(huì)損害本地的覽器中運(yùn)行)時(shí),它不會(huì)損害本地的系統(tǒng)。安全性的前提是什么也不能信系統(tǒng)。安全性的前提是什么也不能信任。任。6. Java是結(jié)構(gòu)中立的是結(jié)構(gòu)中立的 Java是解釋型的,這一特點(diǎn)使得是解釋型的,這一特點(diǎn)使得Java80 成為結(jié)構(gòu)中立的(成為結(jié)構(gòu)中立的(architecture-neutral),即),即Java是平臺(tái)無(wú)關(guān)的。是平臺(tái)無(wú)關(guān)的。得用得用Java虛擬機(jī),我們可編寫(xiě)任何平虛擬機(jī),我們可編寫(xiě)任何平臺(tái)上都能運(yùn)行的程序。臺(tái)上都能運(yùn)行的程序。7. Java是可移植的是可移植的 Java是結(jié)構(gòu)中立的,因而是結(jié)構(gòu)中立的,因而Java程序是程
59、序是可移埴的,它不必重新編譯就能在任可移埴的,它不必重新編譯就能在任何平臺(tái)上運(yùn)行。何平臺(tái)上運(yùn)行。Java在不同平臺(tái)上運(yùn)在不同平臺(tái)上運(yùn)行時(shí),用戶不用擔(dān)心數(shù)值的最大長(zhǎng)度行時(shí),用戶不用擔(dān)心數(shù)值的最大長(zhǎng)度81 和精度會(huì)發(fā)生變化。和精度會(huì)發(fā)生變化。8. Java是高效的是高效的9. Java是多線程的是多線程的 多線程使得一個(gè)程序可以同時(shí)執(zhí)行多多線程使得一個(gè)程序可以同時(shí)執(zhí)行多個(gè)任務(wù)成為可能,因而它被廣泛應(yīng)用個(gè)任務(wù)成為可能,因而它被廣泛應(yīng)用于圖形用戶界面(于圖形用戶界面(Graphics User Interface,GUI)和網(wǎng)絡(luò)程序設(shè)計(jì))和網(wǎng)絡(luò)程序設(shè)計(jì)中。在中。在GUI程序設(shè)計(jì)中,有許多任務(wù)程序設(shè)計(jì)中
60、,有許多任務(wù)需要同時(shí)進(jìn)行,如播放音樂(lè)、瀏覽網(wǎng)需要同時(shí)進(jìn)行,如播放音樂(lè)、瀏覽網(wǎng)82 頁(yè)等。在網(wǎng)絡(luò)程序設(shè)計(jì)中,一個(gè)服務(wù)頁(yè)等。在網(wǎng)絡(luò)程序設(shè)計(jì)中,一個(gè)服務(wù)器可能同時(shí)為多個(gè)客戶服務(wù),如多臺(tái)器可能同時(shí)為多個(gè)客戶服務(wù),如多臺(tái)計(jì)算機(jī)上的瀏覽器同時(shí)向一臺(tái)計(jì)算機(jī)上的瀏覽器同時(shí)向一臺(tái)WWW服務(wù)器請(qǐng)求網(wǎng)頁(yè)信息時(shí),就需要服務(wù)服務(wù)器請(qǐng)求網(wǎng)頁(yè)信息時(shí),就需要服務(wù)器有多個(gè)線程分別響應(yīng)它們的要求。器有多個(gè)線程分別響應(yīng)它們的要求。一般而言,使用多線程必須調(diào)用操作一般而言,使用多線程必須調(diào)用操作系統(tǒng)特定的過(guò)程才能實(shí)現(xiàn),但系統(tǒng)特定的過(guò)程才能實(shí)現(xiàn),但Java語(yǔ)語(yǔ)言卻平衡地集成了多線程程序設(shè)計(jì)技言卻平衡地集成了多線程程序設(shè)計(jì)技術(shù),簡(jiǎn)化了程
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024酒水購(gòu)銷(xiāo)合同模板
- 2024三方運(yùn)輸合同的范本
- 2024購(gòu)銷(xiāo)水泥合同范文
- 標(biāo)準(zhǔn)房屋轉(zhuǎn)讓協(xié)議樣本
- 2024房屋拆遷合同范本
- 2024機(jī)械設(shè)備購(gòu)銷(xiāo)合同范本
- 建筑材料銷(xiāo)售合同模板:建筑材料買(mǎi)賣(mài)合同參考
- 2024居室裝飾裝修施工合同范本
- 2024年民事調(diào)解協(xié)議書(shū)參考范本
- 標(biāo)準(zhǔn)服務(wù)合同范例大全
- 工廠改造施工方案
- 初中英語(yǔ)新課程標(biāo)準(zhǔn)詞匯表
- 《春節(jié)的文化與習(xí)俗》課件
- 手機(jī)棋牌平臺(tái)網(wǎng)絡(luò)游戲商業(yè)計(jì)劃書(shū)
- 學(xué)校體育與社區(qū)體育融合發(fā)展的研究
- 醫(yī)療機(jī)構(gòu)高警示藥品風(fēng)險(xiǎn)管理規(guī)范(2023版)
- 一年級(jí)體質(zhì)健康數(shù)據(jù)
- 八年級(jí)物理(上)期中考試分析與教學(xué)反思
- 國(guó)家開(kāi)放大學(xué)《財(cái)政與金融(農(nóng))》形考任務(wù)1-4參考答案
- 2023銀行網(wǎng)點(diǎn)年度工作總結(jié)
- 工廠反騷擾虐待強(qiáng)迫歧視政策
評(píng)論
0/150
提交評(píng)論