本文由 ImportNew-唐尤華翻譯自math.hws.edu。歡迎加入翻譯小組。轉(zhuǎn)載請(qǐng)見文末要求。
抽象類(abstract class):抽象類不能創(chuàng)建對(duì)象,主要用來(lái)創(chuàng)建子類。Java中的抽象類使用 abstract 修飾符定義。
抽象數(shù)據(jù)類型(abstract data type ADT):抽象數(shù)據(jù)類型指明了可能的類型和允許進(jìn)行的操作,但是沒有提供實(shí)現(xiàn)。
訪問標(biāo)識(shí)符(access specifier):用于方法或變量定義,限定了哪些類可以訪問該方法或變量。Java中的訪問標(biāo)識(shí)符有 public、protected 和 private。沒有訪問標(biāo)識(shí)符修飾的方法或變量默認(rèn)可見性為“package”。
活動(dòng)記錄(activation record):活動(dòng)記錄是包含了實(shí)現(xiàn)子程序調(diào)用必須的所有信息,包括參數(shù)值、子程序中的本地變量和子程序調(diào)用結(jié)束時(shí)計(jì)算機(jī)的返回地址?;顒?dòng)記錄存儲(chǔ)在棧中,使得多個(gè)子程序調(diào)用同時(shí)活躍成為可能。這對(duì)遞歸非常重要,遞歸時(shí)對(duì)同一個(gè)子程序的多個(gè)調(diào)用要求同時(shí)激活。
實(shí)參(actual parameter):子程序的參數(shù)叫做聲明。當(dāng)調(diào)用執(zhí)行時(shí),通過(guò)聲明把值傳遞給自函數(shù)。實(shí)參也叫做“參數(shù)”。
地址(address):計(jì)算機(jī)內(nèi)存中的每個(gè)位置都有一個(gè)地址,表示該位置的編號(hào)。內(nèi)存中的位置按序號(hào)排列。在現(xiàn)代計(jì)算機(jī)中,內(nèi)存中的每個(gè)字節(jié)都有自己的地址。在存儲(chǔ)或讀取內(nèi)存信息時(shí)用需要用到地址。
算法(algorithm):完成某項(xiàng)任務(wù)所需要的一步一步的過(guò)程,過(guò)程本身沒有歧義,且可以保證在有限的步驟內(nèi)完成該任務(wù)。
阿爾法顏色組成(alpha color component):顏色組成用來(lái)描述顏色的透明度或不透明度。阿爾法組成越高,顏色越不透明。
API:應(yīng)用編程接口。針對(duì)軟件包或“工具箱”的接口說(shuō)明。API包含了工具箱中所有類或子程序及其使用說(shuō)明。
Applet:與可以單獨(dú)運(yùn)行的應(yīng)用程序不同,Applet是一種在Web瀏覽器中運(yùn)行在Web頁(yè)面上的Java程序。
動(dòng)畫(animation):由一組靜態(tài)圖片快速顯示展示出動(dòng)態(tài)效果。每一幅靜態(tài)圖片叫做幀。在Java中,動(dòng)畫通常由 Timer 對(duì)象驅(qū)動(dòng)。每次定時(shí)器觸發(fā)時(shí),會(huì)顯示動(dòng)畫的下一幀。
反鋸齒(antialiasing):當(dāng)圖形和文本以像素方式顯示時(shí),可以通過(guò)調(diào)整像素的顏色減輕“鋸齒”效應(yīng)。反鋸齒畫圖時(shí),圖形只覆蓋像素的一部分,圖形的顏色與該像素之前的顏色混合而成?;旌系某潭扔筛采w像素的多少?zèng)Q定。
數(shù)組(array):一個(gè)順序排列的元素列表。列表中,每個(gè)元素都可以由自己的索引標(biāo)識(shí),即序號(hào)。在Java中,數(shù)組里所有元素必須類型相同,該類型也稱作數(shù)組的基類型。數(shù)組是一種可隨機(jī)訪問的數(shù)據(jù)結(jié)構(gòu),也就是說(shuō),你可以隨時(shí)直接訪問數(shù)組中的任意元素。
數(shù)組類型(array type):這種數(shù)據(jù)類型的值是數(shù)組。比如類型的名字為 Type,那么 Type 就是數(shù)組類型,基類型為 Type。
賦值語(yǔ)句(assignment statement):計(jì)算機(jī)程序中的一種語(yǔ)句,可以讀取或計(jì)算數(shù)值,并將其存儲(chǔ)到變量中。Java中的賦值語(yǔ)句形式為:變量名 = 表達(dá)式。
異步事件(asynchronous event):異步事件指發(fā)生時(shí)間不可預(yù)料的事件,計(jì)算機(jī)程序無(wú)法對(duì)其控制。像點(diǎn)擊鼠標(biāo)、按鍵這樣的用戶輸入事件都是異步的。
ASCII碼:美國(guó)信息交換標(biāo)準(zhǔn)碼。這種編碼使用7個(gè)比特對(duì)字符編碼。ASCII碼只支持128個(gè)字符,不支持重音字符、非英語(yǔ)字符、特殊符號(hào)或非字符化語(yǔ)言的表意符號(hào),比如中文。Java采用了容量更大、更加完整的Unicode編碼處理字符。
基線條件(base case):在遞歸算法中,基線條件可以直接處理不需要繼續(xù)遞歸。
二進(jìn)制數(shù)(binary number):數(shù)值被編碼為一組0、1序列。一般數(shù)字以“10為基數(shù)”,二進(jìn)制數(shù)與其類似,只是以“2為基數(shù)”。
二叉樹(binary tree):二叉樹是一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)??梢詾榭諛洌蛘哂蓛煽酶〉亩鏄洌赡転榭諛洌┡c根節(jié)點(diǎn)組成。根節(jié)點(diǎn)包含了指向兩棵子樹的指針。這兩棵更小的二叉樹被稱作左子樹和右子樹。
比特(bit):一位二進(jìn)制數(shù),可能是0或1。
黑盒(black box):指系統(tǒng)或組件在使用時(shí)無(wú)需關(guān)心內(nèi)部結(jié)構(gòu)。黑盒包括接口和實(shí)現(xiàn)。在系統(tǒng)中,被當(dāng)做組件使用的黑盒叫做模塊。
塊(block):在Java編程中,被花括號(hào)({})包圍的一組語(yǔ)句稱為塊。(代碼)塊用來(lái)將一組語(yǔ)句組合成一條語(yǔ)句。塊可以為空,表示不包含任何語(yǔ)句,即一對(duì)空的花括號(hào)。
阻塞操作(blocking operation):一個(gè)操作如果需要等待某些事件發(fā)生就稱為“阻塞”操作,比如從網(wǎng)絡(luò)連接讀取數(shù)據(jù)。執(zhí)行阻塞操作的線程會(huì)一直處在“阻塞”狀態(tài),直到事件發(fā)生。處于阻塞狀態(tài)時(shí),線程不能執(zhí)行任何指令。而程序中的其它線程可以繼續(xù)執(zhí)行。
阻塞隊(duì)列(blocking queue):當(dāng)阻塞隊(duì)列為空時(shí),出隊(duì)操作會(huì)引發(fā)阻塞,直到隊(duì)列中有新成員加入。如果阻塞隊(duì)列有大小限制,當(dāng)隊(duì)列填滿時(shí),入隊(duì)操作也會(huì)引起阻塞。
自底向上設(shè)計(jì)(bottom-up design):自底向上設(shè)計(jì)是一種軟件設(shè)計(jì)方法。從系統(tǒng)的基礎(chǔ)組件開始設(shè)計(jì),然后將它們組合成更復(fù)雜的組件,諸如此類。
BufferedImage類:BufferedImage類展示了“屏外畫布”,即圖片存儲(chǔ)在計(jì)算機(jī)內(nèi)存中,可以在屏幕外進(jìn)行繪制。
分支(branch):分支是一種控制結(jié)構(gòu),計(jì)算機(jī)通過(guò)分支從2個(gè)或多個(gè)不同的執(zhí)行路徑中進(jìn)行選擇。Java有兩種分支語(yǔ)句:if 語(yǔ)句和 switch 語(yǔ)句。
字節(jié)(byte):字節(jié)是一種由8個(gè)比特組成的內(nèi)存單元。一個(gè)字節(jié)可以保存8個(gè)比特二進(jìn)制數(shù)。
字節(jié)碼(bytecode):“Java字節(jié)碼”是Java虛擬機(jī)機(jī)器語(yǔ)言的常用名稱。Java程序會(huì)被編譯成Java字節(jié)碼,后者由JVM執(zhí)行。
字符集(charset):字符集是一種將字符數(shù)據(jù)編碼為二進(jìn)制的特定編碼形式。例如UTF-8和ISO-8859-1。
受檢異常(checked exception):在Java中受檢異常必須處理,可以通過(guò) try catch 語(yǔ)句捕獲,或者在方法上使用 throw 語(yǔ)句拋出該異常。如果沒有用這兩種方式處理受檢異常,會(huì)報(bào)告語(yǔ)法錯(cuò)誤。
類(class):類是Java的基礎(chǔ)編程單元。類是靜態(tài)方法、非靜態(tài)方法和變量的集合。靜態(tài)成員是類自身的一部分,非靜態(tài)或“實(shí)例”成員是創(chuàng)建對(duì)象的藍(lán)本,由此創(chuàng)建的對(duì)象“屬于”該類。
類變量(class variable)和類方法(class methods):“靜態(tài)變量”和“靜態(tài)方法”的別名。它們是類的一部分,與對(duì)象無(wú)關(guān)。
客戶端/服務(wù)器(client/server):一種網(wǎng)絡(luò)通訊模式。其中,“服務(wù)器”在網(wǎng)絡(luò)上守候某個(gè)已知地址,等待“客戶端”向它發(fā)起連接請(qǐng)求。這是TCP/IP協(xié)議的基礎(chǔ)通訊模型。
命令行接口(command-line interface):一種計(jì)算機(jī)交互方法。用戶向計(jì)算機(jī)輸入命令,計(jì)算機(jī)對(duì)每個(gè)命令進(jìn)行響應(yīng)。
注釋(comment):在一個(gè)計(jì)算機(jī)程序中,注釋是那些被計(jì)算機(jī)忽略的文本。注釋的目的是方便人們閱讀,幫助理解程序。
編譯器(compiler):編譯器是一種計(jì)算機(jī)程序,將某種計(jì)算機(jī)語(yǔ)言(通常是高級(jí)語(yǔ)言)編寫的程序翻譯成機(jī)器語(yǔ)言程序。
組件(component):組件是對(duì)GUI可視元素的泛稱,包括窗口、按鈕或菜單等。在Java中,組件表現(xiàn)為 java.awt.Component 子類創(chuàng)建的對(duì)象。
構(gòu)造函數(shù)(constructor):類的一種特殊子程序,主要用來(lái)創(chuàng)建類的對(duì)象。構(gòu)造函數(shù)一般使用 new 操作符進(jìn)行調(diào)用,通常不被看做“方法”。
容器(container):類似 JPanel 這樣的組件,容器可以包含其它GUI組件。調(diào)用容器的 add 方法可以向其添加組件。
方法契約(contract of a method):方法接口的語(yǔ)義組件。它指明了方法及其調(diào)用者的職責(zé),如何調(diào)用該方法,以及正確調(diào)用方法時(shí)會(huì)執(zhí)行的任務(wù)。方法契約應(yīng)當(dāng)在該方法的 Javadoc注釋中完整說(shuō)明。
控制結(jié)構(gòu)(control structure):類似 if 語(yǔ)句、while 循環(huán)這樣可影響程序控制流(即程序中指令執(zhí)行順序)的程序結(jié)構(gòu)。
CPU:中央處理器。CPU是計(jì)算機(jī)中實(shí)際執(zhí)行計(jì)算和運(yùn)行程序的部分。
數(shù)據(jù)結(jié)構(gòu)(data structure):經(jīng)過(guò)組織的數(shù)據(jù)集合。在程序中被當(dāng)做一個(gè)單元處理。
死鎖(deadlock):一種多個(gè)線程無(wú)限等待的情況。出現(xiàn)死鎖的原因,比如每個(gè)線程都在等待其它線程鎖定的資源。
默認(rèn)方法(default method):Java 8 接口中的方法,該方法提供了自己的實(shí)現(xiàn)。所有實(shí)現(xiàn)帶有默認(rèn)方法的接口都可以使用默認(rèn)實(shí)現(xiàn),但是不能覆蓋默認(rèn)方法。通過(guò) default 保留字標(biāo)記默認(rèn)方法。Java 7不支持默認(rèn)方法。
默認(rèn)包(default package):默認(rèn)包沒有包名。沒有在帶有名字的包中聲明的類都?xì)w屬默認(rèn)包。
明確賦值(definite assignment):在程序中,變量在使用前必須確保已經(jīng)被賦值。局部變量只有在賦值后才能合法使用。為了達(dá)到這個(gè)要求,編譯器必須對(duì)變量從聲明開始到使用的每條路徑都進(jìn)行賦值檢查。
棄用(deprecated):表示已經(jīng)廢棄,但為了先后兼容仍然保留。棄用的Java類或方法仍然是Java語(yǔ)言的一部分,但不建議在新代碼中使用。在未來(lái)的Java版本中,棄用的內(nèi)容會(huì)被移除。
對(duì)話框(dialog box):對(duì)話框是依賴其它窗體創(chuàng)建的新窗體。彈出對(duì)話框通常用作獲取用戶信息或展示消息。Swing API中,對(duì)話框表示為 JDialog 創(chuàng)建的對(duì)象。
分布式計(jì)算(distributed computing):一種在由網(wǎng)絡(luò)連接的多個(gè)計(jì)算機(jī)中進(jìn)行的并行處理。
虛參數(shù)(dummy parameter):調(diào)用子程序時(shí),用來(lái)代替實(shí)際傳入?yún)?shù)的標(biāo)識(shí)符。虛參數(shù)也叫“形式參數(shù)”(有時(shí)候會(huì)用“變?cè)?argument”表示實(shí)參,這時(shí)虛參數(shù)也叫做“參數(shù)”)。
enum:枚舉類型。枚舉類型的定義中列舉了該類型所有可能值。在Java中,枚舉類型是一個(gè)類,所有可能的值都是對(duì)象。
事件(event):在GUI編程中,事件指發(fā)生在程序控制以外的操作,比如點(diǎn)擊鼠標(biāo)。程序必須對(duì)發(fā)生的事件進(jìn)行響應(yīng)。
異常(exception):程序控制流程之外的錯(cuò)誤或異常情況。在Java中,異常表示為 Throwable 對(duì)象,可以由 try..catch 語(yǔ)句捕捉并處理。
獲取-執(zhí)行周期(fetch-and-execute cycle):也稱指令周期。指CPU執(zhí)行機(jī)器語(yǔ)言程序的過(guò)程。CPU會(huì)從內(nèi)存獲取(即讀?。┲噶?,執(zhí)行(運(yùn)行)指令,然后再循環(huán)重復(fù)該過(guò)程。
標(biāo)志(flag):一個(gè)布爾值。設(shè)為 true 時(shí)表示達(dá)到某些條件或發(fā)生了某種事情??衫枚M(jìn)制數(shù)中的某個(gè)比特位作為標(biāo)志。
形式參數(shù)(formal parameter):“虛擬參數(shù)”的另一種說(shuō)法。
幀(frame):組成動(dòng)畫的某一幅畫面,也是活動(dòng)記錄的另一種說(shuō)法。
函數(shù)(function):帶有返回值的子程序。
垃圾回收(garbage collection):自動(dòng)回收內(nèi)存的過(guò)程。被回收的內(nèi)存由對(duì)象占用但已不再會(huì)對(duì)其訪問。
泛型編程(generic programming):編寫的代碼不僅限于單一數(shù)據(jù)類型,可適應(yīng)多種數(shù)據(jù)類型。Java集合框架及其它使用了相似技術(shù)的類都是泛型編程的實(shí)例。
getter方法:類中的一個(gè)實(shí)例方法,用來(lái)讀取類的某個(gè)屬性值。通常,屬性代表一些實(shí)例變量的值。按慣例,getter方法被命名為 getXyz,其中 xyz 是屬性的名字。
全局變量(global variable):成員變量的別名。強(qiáng)調(diào)類中的成員變量可以在類方法外存在。
圖形上下文(graphics context):用來(lái)繪制某些特定地點(diǎn)所必須得數(shù)據(jù)和方法。Java中的圖形上下文是屬于 Graphics 類的對(duì)象。
GUI:圖形用戶界面是與計(jì)算機(jī)的現(xiàn)代交互方式。計(jì)算機(jī)通過(guò)GUI在顯示器上展示類似按鈕和菜單這樣的接口組件,用戶可以通過(guò)像鼠標(biāo)點(diǎn)擊這樣的方式與之交互。
哈希表(hash table):一種優(yōu)化的數(shù)據(jù)結(jié)構(gòu),可以高效搜索、插入和刪除對(duì)象。哈希表包含對(duì)象的地址數(shù)組。對(duì)象存儲(chǔ)的地址由自身的“哈希代碼”決定。通過(guò)對(duì)象的內(nèi)容可以高效地計(jì)算出地址整數(shù)值。
堆(heap):計(jì)算機(jī)內(nèi)存中存儲(chǔ)對(duì)象的區(qū)域。
高級(jí)語(yǔ)言(high level language):類似Java這樣的計(jì)算機(jī)語(yǔ)言,方便人們閱讀,但在執(zhí)行前需要翻譯成機(jī)器語(yǔ)言。
HSB:一種顏色系統(tǒng)。其中顏色由3個(gè)數(shù)值表示(在Java中,實(shí)際的數(shù)值在0.0到1.0之間)。分別代表色調(diào)、飽和度和亮度。
IDE:集成開發(fā)環(huán)境。帶圖形用戶界面的編程環(huán)境,集成了創(chuàng)建、編輯和執(zhí)行程序的各種工具。
標(biāo)識(shí)符(identifier):在程序中可用作名字的一組標(biāo)識(shí)符。標(biāo)識(shí)符可用作變量名、方法名和類名。
索引號(hào)(index):元素在數(shù)組中的位置編號(hào)。
實(shí)現(xiàn)(implementation):黑盒的內(nèi)部實(shí)現(xiàn),比如子程序的實(shí)現(xiàn)代碼。
不可變對(duì)象(immutable object):不可變對(duì)象構(gòu)造完成后不能改變,因?yàn)閷?shí)例中所有變量都標(biāo)記為 final。
無(wú)限循環(huán)(infinite loop):循環(huán)永遠(yuǎn)不會(huì)結(jié)束,因?yàn)樗难h(huán)條件永遠(yuǎn)判定為 true。
繼承(inheritence):一個(gè)類可以繼承另一個(gè)類。繼承者會(huì)從父類繼承數(shù)據(jù)和行為。
類的實(shí)例(instance of a class):指歸屬于類(或者該類型子類)的對(duì)象。當(dāng)類用作對(duì)象模板時(shí),對(duì)象由類中的構(gòu)造函數(shù)創(chuàng)建的對(duì)象歸屬于這個(gè)類。
實(shí)例方法(instance method):類中的非靜態(tài)方法,該類的所有實(shí)例都具有該方法。
實(shí)例變量(instance variable):類中的非靜態(tài)變量,該類的所有實(shí)例都包含該變量。
接口(interface):對(duì)如何使用類似子程序這樣的黑盒子一種通用說(shuō)法。接口對(duì)其內(nèi)部發(fā)生的情況沒有提供任何信息?!癷nterface”同時(shí)也是Java中的保留字。從這個(gè)意義上說(shuō),接口是一種定義了一個(gè)或多個(gè)抽象方法的類型。實(shí)現(xiàn)該接口的對(duì)象必須提供這些方法的定義。
解釋器(interpreter):一種執(zhí)行程序的計(jì)算機(jī)程序,被執(zhí)行的程序由某種編程語(yǔ)言編寫。通過(guò)從程序中一個(gè)接一個(gè)讀取指令然后逐條執(zhí)行(將指令翻譯為等價(jià)的機(jī)器語(yǔ)言)。
I/O:輸入/輸出。計(jì)算機(jī)程序與其它部分的通訊方式,比如向用戶展示數(shù)據(jù)、從用戶那里獲取信息、讀寫文件、通過(guò)網(wǎng)絡(luò)發(fā)送和獲取數(shù)據(jù)。
迭代器(iterator):與 list 或 set 這樣的集合相關(guān)聯(lián)的對(duì)象??捎脕?lái)對(duì)該集合進(jìn)行遍歷。迭代器會(huì)輪流訪問集合中的每個(gè)元素。
Java集合框架(Java Collection Framework JCF):一組實(shí)現(xiàn)了泛型數(shù)據(jù)結(jié)構(gòu)的標(biāo)準(zhǔn)類。包括 ArrayList、TreeSet等。
JavaFX:新的應(yīng)用程序GUI工具集。在Java 8中推薦使用。JavaFX不在本書的討論范圍。
JDK:Java開發(fā)工具集。支持編譯、運(yùn)行Java程序的基本軟件。JDK包含命令行編程環(huán)境以及JRE。要編譯Java源代碼或執(zhí)行預(yù)編譯程序時(shí),需要使用JDK。
JRE(Java Runtime Environment):Java運(yùn)行時(shí)環(huán)境。支持運(yùn)行已編譯的標(biāo)準(zhǔn)Java程序。JRE包括一個(gè)Java虛擬機(jī)和所有標(biāo)準(zhǔn)的Java類。
即時(shí)編譯器(just-in-time compiler):一種解釋器和編譯器的結(jié)合,在解釋程序某部分的同時(shí)可對(duì)其進(jìn)行編譯。接下來(lái)對(duì)該部分程序執(zhí)行時(shí)比首次運(yùn)行更快速。這樣可以大大提高執(zhí)行速度?,F(xiàn)代JVM都使用了即時(shí)編譯器。
JVM:Java虛擬機(jī)。將Java字節(jié)碼作為機(jī)器語(yǔ)言執(zhí)行的虛擬計(jì)算機(jī)。也用來(lái)稱呼解析字節(jié)碼程序的計(jì)算機(jī)程序。要在計(jì)算機(jī)上運(yùn)行Java程序需要使用JVM。
布局管理器(layout manager):負(fù)責(zé)對(duì)容器中組件進(jìn)行布局的對(duì)象。進(jìn)行的部分操作包括設(shè)置大小和位置。不同類型的布局管理器實(shí)現(xiàn)的布局策略各不相同。
鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)(linked data structure):一組由之指針相互鏈接的對(duì)象數(shù)據(jù)。這些指針存儲(chǔ)在對(duì)象的實(shí)例變量中。鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)包括鏈表和二叉樹。
鏈表(linked list):一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),節(jié)點(diǎn)之間由指針串連形成線性鏈表。
監(jiān)聽器(listener):在GUI編程中,可以向?qū)ο笞?cè)特定事件的觸發(fā)通知。因此可以說(shuō),對(duì)象在“監(jiān)聽”這些事件。
文字(literal):在程序中鍵入的一組字符序列,表示常量值。例如,當(dāng)A在Java程序中出現(xiàn)時(shí),’A'是一個(gè)常量字符。
(內(nèi)存)位置(location in memory):計(jì)算機(jī)內(nèi)存由一系列位置組成。這些位置順序編號(hào),標(biāo)識(shí)特定位置的編號(hào)被稱為該位置的地址。
本地變量(local variable):在方法內(nèi)部聲明的變量,只能在該方法內(nèi)部使用。代碼塊中聲明變量的有效性,從聲明處開始到該代碼塊的尾部結(jié)束。
循環(huán)(loop):一種控制結(jié)構(gòu),重復(fù)執(zhí)行一組指令。Java提供了3種循環(huán):for 循環(huán)、while 循環(huán)和 do 循環(huán)。
循環(huán)控制變量(loop control variable):for 循環(huán)中的變量,每次執(zhí)行 for 循環(huán)時(shí)都會(huì)修改循環(huán)變量值,通過(guò)檢查該變量決定是否結(jié)束循環(huán)。
機(jī)器語(yǔ)言(machine language):由計(jì)算機(jī)能夠直接執(zhí)行的指令組成的編程語(yǔ)言。機(jī)器語(yǔ)言中的指令會(huì)被編碼成二進(jìn)制數(shù)。每種類型的計(jì)算機(jī)都有自己的機(jī)器語(yǔ)言。用其它語(yǔ)言編寫的程序必須翻譯為該計(jì)算的機(jī)器語(yǔ)言,才能在它上面執(zhí)行。
主內(nèi)存(main memory):程序和數(shù)據(jù)可以存儲(chǔ)在計(jì)算機(jī)的主內(nèi)存中,主內(nèi)存可以被CPU直接訪問。其它形式的內(nèi)存,比如磁盤驅(qū)動(dòng)器,雖然也能存儲(chǔ)信息,但是唯有主內(nèi)存可被CPU直接訪問。磁盤分區(qū)中的程序和數(shù)據(jù)只有拷貝到內(nèi)存中才能被CPU訪問。
map:一種映射數(shù)組。這種數(shù)據(jù)結(jié)構(gòu)將一組(Collection)中的某個(gè)對(duì)象與摸個(gè)集合(Set)中的所有對(duì)象關(guān)聯(lián)在一起。在Java中,map 由泛型接口 Map 成員變量(member variable):定義在類中的變量,但不屬于任何方法。成員變量與本地變量不同,后者在某個(gè)方法中定義。 內(nèi)存(memory):計(jì)算機(jī)中的內(nèi)存用來(lái)存儲(chǔ)程序和數(shù)據(jù)。 方法(method):子程序的另一種稱呼,在面向?qū)ο缶幊讨惺褂?。方法指包含在類或?qū)ο笾械淖映绦颉?/p> 模塊(module):大型系統(tǒng)中的組件,與系統(tǒng)中其它部分以簡(jiǎn)單、定義清晰、直接的方式進(jìn)行交互。 多任務(wù)(multitasking):一次執(zhí)行多個(gè)編程任務(wù)。要么在多個(gè)任務(wù)之間快速來(lái)回切換,要么同時(shí)逐個(gè)執(zhí)行多個(gè)任務(wù)。 多重處理(multiprocessing):進(jìn)行多任務(wù)處理時(shí)使用多個(gè)處理器。這樣,多個(gè)任務(wù)可以同時(shí)逐個(gè)執(zhí)行。 互斥(mutual exclusion):防止兩個(gè)線程同時(shí)訪問相同的資源。在Java中,這種方法應(yīng)用于多個(gè)線程同時(shí)訪問同步方法或同步語(yǔ)句中的資源?;コ饪梢宰柚垢?jìng)態(tài)條件,但是可能引發(fā)死鎖。 MVC模式(MVC pattern):模型-視圖-控制器模式。一種用在GUI組件中進(jìn)行職責(zé)劃分的策略。模型代表組件的數(shù)據(jù),視圖指該模型在屏幕上的展示,控制器負(fù)責(zé)響應(yīng)模型變化事件。在MVC模式中,這些職責(zé)由不同的對(duì)象負(fù)責(zé)處理。 非數(shù)值(NaN):不是一個(gè)數(shù)值。Double.NaN表示一種特殊的 double 值,表示未定義或非法值。 節(jié)點(diǎn)(node):鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)中,某個(gè)對(duì)象的常用稱呼。 null:一種特殊的指針值,表示“沒有指向任何東西”。 數(shù)值分析(numerical analysis):使用逼近法研究算法的領(lǐng)域,比如實(shí)數(shù)以及從逼近計(jì)算中得到的錯(cuò)誤。 差一錯(cuò)誤(off-by-one error):一種常見錯(cuò)誤,處理時(shí)多減或多加了一個(gè)元素。通常是技術(shù)錯(cuò)誤或者循環(huán)時(shí)由其它原因過(guò)早停止或過(guò)度執(zhí)行造成的。 對(duì)象(object):計(jì)算機(jī)程序中帶有數(shù)據(jù)(變量)和行為(方法)的實(shí)體。Java中的對(duì)象必須以某個(gè)類作為創(chuàng)建模板。對(duì)象所屬的類決定了對(duì)象包含的類和方法。 對(duì)象類型(object type):這種類型的值是對(duì)象而非基礎(chǔ)類型。類和接口都是對(duì)象類型。 OOP(Object-Oriented Programming):面向?qū)ο缶幊獭R环N計(jì)算機(jī)程序設(shè)計(jì)和實(shí)現(xiàn)的方法。OOP使用類和對(duì)象創(chuàng)建、表示實(shí)體及實(shí)體間的交互。 操作系統(tǒng)(operating system):在計(jì)算機(jī)中一直運(yùn)行的基礎(chǔ)軟件。沒有操作系統(tǒng)的計(jì)算機(jī)無(wú)法工作。操作系統(tǒng)由Linux、Mac OS 和 Windows Vista。 操作符(operator):類似“+”、“<> (操作符)重載(overloading of operators):相同操作符可以在不同類型的數(shù)據(jù)上使用。比如“+”操作可以同時(shí)應(yīng)用于數(shù)字和字符類型。 (方法名)重載(overloading of method names):同一個(gè)類中定義了幾個(gè)名稱相同的方法,區(qū)別在于各個(gè)方法的簽名不同。 重寫(覆蓋)(overriding):在子類中進(jìn)行重定義。子類中,對(duì)從父類繼承的方法重新定義,新定義的方法就是對(duì)原方法進(jìn)行重寫。 包(package):在Java中,相關(guān)類和子包的有名集合稱為包,例如 java.awt 和 javax.swing。 并行處理(parallel processing):同時(shí)執(zhí)行多個(gè)任務(wù),可以是多個(gè)處理器,也可以由一個(gè)處理器在多個(gè)任務(wù)間返復(fù)執(zhí)行。 參數(shù)(parameter):調(diào)用子程序時(shí),參數(shù)用來(lái)向子程序提供信息。在執(zhí)行子程序代碼前,子程序調(diào)用語(yǔ)句中的“實(shí)參”會(huì)分配給子程序定義的“虛參數(shù)”。 參數(shù)化類型(parameterized type):類似 ArrayList 解析(parsing):確定預(yù)演中字符串語(yǔ)法結(jié)構(gòu)的過(guò)程。解析字符串用來(lái)確定字符串中是否遵循該語(yǔ)言的語(yǔ)法;如果是,那么會(huì)確定該字符串是如何根據(jù)語(yǔ)法進(jìn)行創(chuàng)建。 部分完全數(shù)組(partially full array):數(shù)組是用來(lái)存儲(chǔ)數(shù)量各異的元素。部分完全數(shù)組表示為一個(gè)帶有追蹤元素個(gè)數(shù)計(jì)數(shù)器的普通數(shù)組。 像素(pixel):指屏幕或圖片中的“圖像元素”。一幅圖像由像素的行和列組成。每個(gè)像素的色彩都可以單獨(dú)設(shè)置。 多態(tài)(polymorphism):多態(tài)是指調(diào)用實(shí)例方法的意義取決于調(diào)用方法時(shí)對(duì)象的實(shí)際類型。也就是說(shuō),如果變量的類型是 var,那么調(diào)用方法的語(yǔ)句,比如 var.action 取決于執(zhí)行時(shí) var 所指向的對(duì)象類型,而非 var 變量的類型。 指針(pointer):代表計(jì)算機(jī)內(nèi)存中某個(gè)地址的值,因此可以看做“指向”具有該地址的位置。在Java中,變量不存有對(duì)象;變量只是指向存儲(chǔ)該對(duì)象的位置。指針也稱作“引用”。 語(yǔ)用學(xué)(pragmatics):描述如何編寫好程序的經(jīng)驗(yàn)法則。例如樣式規(guī)則、程序組織指南都是編程語(yǔ)用學(xué)的一部分。 優(yōu)先級(jí)(precedence):操作符的優(yōu)先級(jí)指,在沒有括號(hào)的情況下,表達(dá)式中多個(gè)操作符的作用順序。 前置條件(precondition):在程序的執(zhí)行過(guò)程中,為了讓程序正確運(yùn)行,前置條件必須判定為 true。子程序的前置條件是指,為了讓子程序正確運(yùn)行必須滿足的前置條件。子程序的前置條件通常是對(duì)傳入的子程序的實(shí)參值進(jìn)行的限制。 優(yōu)先級(jí)隊(duì)列(priority queue):一種表示元素結(jié)合的數(shù)據(jù)結(jié)構(gòu),其中每個(gè)元素都有自己的“優(yōu)先級(jí)”。優(yōu)先級(jí)隊(duì)列具有添加和移除操作??梢园凑杖我獾捻樞蛱砑釉?,但移除時(shí)總是先移除優(yōu)先級(jí)最低的元素。(某些版本的優(yōu)先級(jí)隊(duì)列會(huì)先移除優(yōu)先級(jí)最高的元素) 后置條件(postcondition):在執(zhí)行程序的某個(gè)節(jié)點(diǎn),該條件的計(jì)算結(jié)果為 true。子程序的后置條件在子程序執(zhí)行結(jié)束后必須為 true。函數(shù)的后置條件通常表示為函數(shù)的返回值。 基本類型(primitive type):Java的8個(gè)內(nèi)建基本數(shù)據(jù)類型有 double、float、long、int、short、byte、boolean 和 char。基本類型變量存儲(chǔ)了真實(shí)的值,而非指向數(shù)值的指針。 線程優(yōu)先級(jí)(priority of a thread):與線程關(guān)聯(lián)的整數(shù)值,可以影響線程的執(zhí)行順序。優(yōu)先級(jí)高的線程比優(yōu)先級(jí)低的線程提前執(zhí)行。 生產(chǎn)者/消費(fèi)者(producer/consumer):并行編程中的一種經(jīng)典模式,一個(gè)或多個(gè)生產(chǎn)者生產(chǎn)的產(chǎn)品被一個(gè)或更多的消費(fèi)者使用。生產(chǎn)者和消費(fèi)者設(shè)計(jì)為可以并行執(zhí)行。這里的難點(diǎn)在于,如何安全、高效地從生產(chǎn)者向消費(fèi)者非配產(chǎn)品。在Java中,通過(guò)阻塞隊(duì)列實(shí)現(xiàn)生產(chǎn)者/消費(fèi)者模式。 程序(program):用某種合適的編程語(yǔ)言編寫的一組指令,由計(jì)算機(jī)執(zhí)行。用做動(dòng)詞時(shí),表示創(chuàng)建該指令的動(dòng)作。 編程語(yǔ)言(programming language):用來(lái)為計(jì)算機(jī)編程的一種語(yǔ)言。編程語(yǔ)言的復(fù)雜性,從機(jī)器語(yǔ)言到像Java這樣的高級(jí)語(yǔ)言跨度很大。 協(xié)議(protocol):在指定上下文中,構(gòu)成合法通信的一組規(guī)范。協(xié)議中規(guī)定了合法的消息、傳送的時(shí)間、期待的恢復(fù)類型等。 偽代碼(pseudocode):非正式算法規(guī)范。與實(shí)際編程語(yǔ)言相比,偽代碼更加接近英語(yǔ)。并且,通常無(wú)需明確地寫出過(guò)程的每個(gè)細(xì)節(jié)。 隊(duì)列(queue):由一組元素構(gòu)成的數(shù)據(jù)結(jié)構(gòu)。只能在列表的一頭添加數(shù)據(jù),在列表的另一頭移除數(shù)據(jù)。 競(jìng)態(tài)條件(race condition):并行編程中可能的錯(cuò)誤源。由于某個(gè)線程改變了第二個(gè)程序依賴的程序狀態(tài)(比如變量值),從而引發(fā)錯(cuò)誤。 RAM(Random Access Memory):隨機(jī)訪問內(nèi)存。計(jì)算機(jī)主內(nèi)存的同義詞。然而,從技術(shù)角度看,RAM是指在任意時(shí)間內(nèi)都可以同樣訪問內(nèi)存地址。RAM也意味著可以同時(shí)讀寫數(shù)據(jù)。 遞歸(recursion):用自身的形式定義自己。特別地,遞歸子程序可以直接或通過(guò)一系列其它子程序間接調(diào)用自己。遞歸算法的工作方式,通過(guò)將一個(gè)復(fù)雜問題拆分成更小的子問題。子問題要么可以直接解決,要么可以“遞歸”使用相同的算法。 RGB:一種顏色系統(tǒng)。顏色由3個(gè)數(shù)值定義(在Java中,數(shù)值的范圍從0到255)。分別表示顏色中的紅色、綠色和藍(lán)色組成。 引用(reference):“指針”的另一種稱呼。 函數(shù)返回類型(return type of a function):函數(shù)返回值的類型。 保留字(關(guān)鍵字)(reserved word):一組字符串序列,看起來(lái)和標(biāo)識(shí)符很像。但是由于在編程語(yǔ)言中有特殊含義,所以不能用作標(biāo)識(shí)符。例如 class、public 是Java中的保留字。 資源(resource):圖片、聲音、文字或程序中的數(shù)據(jù)文件都是資源。Java資源文件與編譯好的class文件存儲(chǔ)在相同的路徑(class path)。 健壯的程序(robust program):健壯的程序不僅正確,同時(shí)也能合理地處理錯(cuò)誤,比如文件不存在或者無(wú)法建立網(wǎng)絡(luò)連接。 集合(set):沒有重復(fù)的一組對(duì)象。在Java中,集合用泛型接口 Set 作用域(scope):表示程序中聲明的標(biāo)識(shí)符的有效作用域。 語(yǔ)義(semantics):語(yǔ)義是指,語(yǔ)言的語(yǔ)義規(guī)則決定了該語(yǔ)言中字符串符號(hào)(例如句子或語(yǔ)句)的含義。 哨兵值(sentinel value):表示數(shù)據(jù)序列結(jié)束的特殊標(biāo)記,表明該數(shù)據(jù)已結(jié)束。 setter方法:類中的實(shí)例方法,用來(lái)設(shè)置類中的一些屬性值。通常,這些屬性只是實(shí)例變量值。按照慣例,setter 方法命名為 setXyz,其中 xyz 是屬性的名字。 方法簽名(signature of a method):方法名、方法定義中形參的個(gè)數(shù)以及每個(gè)形參的類型。編譯器通過(guò)方法簽名來(lái)識(shí)別指定子程序調(diào)用語(yǔ)句究竟調(diào)用了哪個(gè)方法。 套接字(socket):網(wǎng)絡(luò)上兩個(gè)計(jì)算機(jī)之間的連接,對(duì)其中一端的抽象表示。套接字表示計(jì)算機(jī)程序間的一個(gè)邏輯連接,而非計(jì)算機(jī)間的物理連接。 棧(stack):一組元素組成的列表數(shù)據(jù)結(jié)構(gòu),只能在列表的尾部,也稱作“棧頂”。向棧中添加元素叫“入棧 push”,移除元素稱作“出棧 pop”。棧也指用來(lái)實(shí)現(xiàn)子程序調(diào)用的活動(dòng)記錄。 標(biāo)準(zhǔn)輸入(standard input):程序讀取輸入數(shù)據(jù)的標(biāo)準(zhǔn)源,由 System.in 對(duì)象表示。通常,標(biāo)準(zhǔn)輸入來(lái)自用戶鍵入的文本,但是標(biāo)準(zhǔn)輸出也可以重定向到其它源,比如文件。 標(biāo)準(zhǔn)輸出(standard output):程序?qū)⑤敵鑫谋緦懭氲臉?biāo)準(zhǔn)目標(biāo),由 System.out 對(duì)象表示。通常,標(biāo)準(zhǔn)輸出會(huì)向用戶展示,但是也可以“重定向”到其它目標(biāo),比如文件。此外,System.err 對(duì)象用來(lái)輸出錯(cuò)誤信息。 狀態(tài)機(jī)(state machine):一種計(jì)算機(jī)模型。抽象的“機(jī)器”可處于有限狀態(tài)集中的任何一種狀態(tài)。機(jī)器會(huì)根據(jù)自身的狀態(tài)決定行為,根據(jù)輸入或事件進(jìn)行狀態(tài)切換。GUI程序的基本邏輯可表現(xiàn)為狀態(tài)機(jī)。 逐步精化法(step-wise refinement):一種算法開發(fā)技術(shù)。開始列出算法步驟大綱,通常用偽代碼表示,然后逐步填充細(xì)節(jié)。 流(stream):輸入數(shù)據(jù)源或輸出數(shù)據(jù)目標(biāo)的抽象表示。Java為字符和二進(jìn)制數(shù)據(jù)輸入、輸出流提供了4個(gè)基礎(chǔ)類。這些類組成了Java I/O API的基礎(chǔ)。 源代碼(source code):用高級(jí)編程語(yǔ)言編寫的文本。在計(jì)算機(jī)執(zhí)行前,必須翻譯成機(jī)器語(yǔ)言,比如Java字節(jié)碼。 子類(subclass):一個(gè)類,直接或間接繼承了其它類,從而繼承了它的數(shù)據(jù)和行為。前一個(gè)類就叫做第二類的子類。 子程序(subroutine):一系列程序指令。通過(guò)子程序名可以“調(diào)用”該子程序。在面向?qū)ο缶幊讨校映绦蛞卜Q作方法。 子程序調(diào)用語(yǔ)句(subroutine call statement):程序中調(diào)用子程序的語(yǔ)句。當(dāng)執(zhí)行子程序調(diào)用語(yǔ)句時(shí),計(jì)算機(jī)會(huì)執(zhí)行子程序內(nèi)部的代碼。 super:一個(gè)特殊變量,在實(shí)例方法中自動(dòng)定義。super指包含該方法的對(duì)象,歸屬于方法所在類的父類。super可以訪問父類中被隱藏的成員變量,這些變量與子類中的成員變量同名。 語(yǔ)法(syntax):定義了該語(yǔ)言中哪些字符串符號(hào)符合該語(yǔ)言的語(yǔ)法規(guī)則。 TCP/IP:Internet上用來(lái)網(wǎng)絡(luò)通訊的協(xié)議。 this:一個(gè)特殊變量,在實(shí)例方法中自動(dòng)定義,歸屬于方法所在的類。 線程(thread):對(duì)一系列逐條執(zhí)行語(yǔ)句的抽象表示。計(jì)算機(jī)可以并行執(zhí)行多個(gè)線程。 線程池(thread pool):執(zhí)行任務(wù)時(shí)可以使用的一組“工作線程”。當(dāng)任務(wù)就緒時(shí),可分配給池中的線程。線程池通常使用阻塞式隊(duì)列存儲(chǔ)任務(wù)。 自頂向下設(shè)計(jì)(top-down design):一種軟件設(shè)計(jì)方法。開始把問題作為一個(gè)整體,然后拆分成更小的問題,再逐步細(xì)化,直到子問題可以直接解決。 類型(type):數(shù)值的特定類型。例如,int類型規(guī)定了整形值可以表示為32比特二進(jìn)制數(shù)。在Java中,類型可以是基本類型、類名或接口名。類型名可用來(lái)定義變量的類型,子程序中的虛擬參數(shù)和子程序的返回類型。 類型轉(zhuǎn)換(type cast):把一種類型的值強(qiáng)制轉(zhuǎn)換為另一種類型。例如,在 (int)(6*Math.random) 中,(int) 是一個(gè)類型轉(zhuǎn)換操作,將 (6*Math.random) 的浮點(diǎn)值轉(zhuǎn)換為了整形,丟棄了實(shí)數(shù)中的小數(shù)部分。 Unicode:將字符編碼成二進(jìn)制數(shù)的一種方式。Unicode字符集包含了許多語(yǔ)言的字符,不僅限于英語(yǔ)。Java內(nèi)部使用的就是Unicode字符集。 URL:全球資源定位器。Internet上資源的地址,比如網(wǎng)頁(yè)。 變量(variable):一個(gè)帶名字的內(nèi)存位置(或一系列位置),用來(lái)存儲(chǔ)數(shù)據(jù)。在程序中創(chuàng)建變量,通過(guò)變量聲明語(yǔ)句將名字賦予該變量。根據(jù)使用情況,這個(gè)名字在程序中可以代指該內(nèi)存位置,或者向內(nèi)存地址中存儲(chǔ)數(shù)據(jù)。在Java中,變量具有類型,可以表示變量持有數(shù)據(jù)的種類。 包裝類(wrapper class):類似 Double、Integer這樣的類,將一個(gè)基本類型的值“包裝”在對(duì)象中,該對(duì)象歸屬于包裝類。這樣,在需要使用對(duì)象的地方也可以使用基本類型值,比如Java集合框架。 XML(eXtensible Markup Language):可擴(kuò)展標(biāo)記語(yǔ)言。一種非常常見且語(yǔ)法標(biāo)準(zhǔn)、支持良好的語(yǔ)言。用來(lái)創(chuàng)建基于文本的數(shù)據(jù)表示。 [ 轉(zhuǎn)載請(qǐng)保留原文出處、譯者和譯文鏈接。] 我喜歡程序員,他們單純、固執(zhí)、容易體會(huì)到成就感;面對(duì)壓力,能夠挑燈夜戰(zhàn)不眠不休;面對(duì)困難,能夠迎難而上挑戰(zhàn)自我。他們也會(huì)感到困惑與傍徨,但每個(gè)程序員的心中都有一個(gè)比爾蓋茨或是喬布斯的夢(mèng)想“用智慧開創(chuàng)屬于自己的事業(yè)”。我想說(shuō)的是,其實(shí)我是一個(gè)程序員。(新浪微博:@唐尤華)
聯(lián)系客服