原文作者:程序員共讀
對(duì)于剛開(kāi)始學(xué)JAVA的同學(xué)來(lái)說(shuō),經(jīng)常會(huì)出現(xiàn)一些名稱,卻不知其作用是什么。作者搜集了有186個(gè)Java入門(mén)常用的詞匯,為初學(xué)者排憂解難。另外,工作多年的開(kāi)發(fā)者們,你們這些單詞都認(rèn)識(shí)么?
1抽象類(abstract class):
抽象類不能創(chuàng)建對(duì)象,主要用來(lái)創(chuàng)建子類。
Java中的抽象類使用 abstract 修飾符定義。
2抽象數(shù)據(jù)類型(abstract data type ADT):
抽象數(shù)據(jù)類型指明了可能的類型和允許進(jìn)行的操作,但是沒(méi)有提供實(shí)現(xiàn)。
3訪問(wèn)標(biāo)識(shí)符(access specifier):
用于方法或變量定義,限定了哪些類可以訪問(wèn)該方法或變量。
Java中的訪問(wèn)標(biāo)識(shí)符有 public、protected 和 private。
沒(méi)有訪問(wèn)標(biāo)識(shí)符修飾的方法或變量默認(rèn)可見(jiàn)性為“package”。
4活動(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í)激活。
5實(shí)參(actual parameter):
子程序的參數(shù)叫做聲明。當(dāng)調(diào)用執(zhí)行時(shí),通過(guò)聲明把值傳遞給自函數(shù)。實(shí)參也叫做“參數(shù)”。
6地址(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í)用需要用到地址。
7算法(algorithm):
完成某項(xiàng)任務(wù)所需要的一步一步的過(guò)程,過(guò)程本身沒(méi)有歧義,且可以保證在有限的步驟內(nèi)完成該任務(wù)。
8阿爾法顏色組成(alpha color component):
顏色組成用來(lái)描述顏色的透明度或不透明度。阿爾法組成越高,顏色越不透明。
9API:
應(yīng)用編程接口。針對(duì)軟件包或“工具箱”的接口說(shuō)明。
API包含了工具箱中所有類或子程序及其使用說(shuō)明。
10Applet:
與可以單獨(dú)運(yùn)行的應(yīng)用程序不同,Applet是一種在Web瀏覽器中運(yùn)行在Web頁(yè)面上的Java程序。
11動(dòng)畫(huà)(animation):
由一組靜態(tài)圖片快速顯示展示出動(dòng)態(tài)效果。每一幅靜態(tài)圖片叫做幀。
在Java中,動(dòng)畫(huà)通常由 Timer 對(duì)象驅(qū)動(dòng)。
每次定時(shí)器觸發(fā)時(shí),會(huì)顯示動(dòng)畫(huà)的下一幀。
12反鋸齒(antialiasing):
當(dāng)圖形和文本以像素方式顯示時(shí),可以通過(guò)調(diào)整像素的顏色減輕“鋸齒”效應(yīng)。
反鋸齒畫(huà)圖時(shí),圖形只覆蓋像素的一部分,圖形的顏色與該像素之前的顏色混合而成。混合的程度由覆蓋像素的多少?zèng)Q定。
13數(shù)組(array):
一個(gè)順序排列的元素列表。列表中,每個(gè)元素都可以由自己的索引標(biāo)識(shí),即序號(hào)。
在Java中,數(shù)組里所有元素必須類型相同,該類型也稱作數(shù)組的基類型。
數(shù)組是一種可隨機(jī)訪問(wèn)的數(shù)據(jù)結(jié)構(gòu),也就是說(shuō),你可以隨時(shí)直接訪問(wèn)數(shù)組中的任意元素。
14數(shù)組類型(array type):
這種數(shù)據(jù)類型的值是數(shù)組。比如類型的名字為 Type,那么 Type[] 就是數(shù)組類型,基類型為 Type。
15賦值語(yǔ)句(assignment statement):
計(jì)算機(jī)程序中的一種語(yǔ)句,可以讀取或計(jì)算數(shù)值,并將其存儲(chǔ)到變量中。
Java中的賦值語(yǔ)句形式為:變量名 = 表達(dá)式。
16異步事件(asynchronous event):
異步事件指發(fā)生時(shí)間不可預(yù)料的事件,計(jì)算機(jī)程序無(wú)法對(duì)其控制。
像點(diǎn)擊鼠標(biāo)、按鍵這樣的用戶輸入事件都是異步的。
17ASCII碼:
美國(guó)信息交換標(biāo)準(zhǔn)碼。這種編碼使用7個(gè)比特對(duì)字符編碼。
ASCII碼只支持128個(gè)字符,不支持重音字符、非英語(yǔ)字符、特殊符號(hào)或非字符化語(yǔ)言的表意符號(hào),比如中文。
Java采用了容量更大、更加完整的Unicode編碼處理字符。
18基線條件(base case):
在遞歸算法中,基線條件可以直接處理不需要繼續(xù)遞歸。
19二進(jìn)制數(shù)(binary number):
數(shù)值被編碼為一組0、1序列。一般數(shù)字以“10為基數(shù)”,二進(jìn)制數(shù)與其類似,只是以“2為基數(shù)”。
20二叉樹(shù)(binary tree):
二叉樹(shù)是一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)。可以為空樹(shù),或者由兩棵更小的二叉樹(shù)(可能為空樹(shù))與根節(jié)點(diǎn)組成。
根節(jié)點(diǎn)包含了指向兩棵子樹(shù)的指針。這兩棵更小的二叉樹(shù)被稱作左子樹(shù)和右子樹(shù)。
21比特(bit):
一位二進(jìn)制數(shù),可能是0或1。
22黑盒(black box):
指系統(tǒng)或組件在使用時(shí)無(wú)需關(guān)心內(nèi)部結(jié)構(gòu)。黑盒包括接口和實(shí)現(xiàn)。在系統(tǒng)中,被當(dāng)做組件使用的黑盒叫做模塊。
23塊(block):
在Java編程中,被花括號(hào)({})包圍的一組語(yǔ)句稱為塊。(代碼)塊用來(lái)將一組語(yǔ)句組合成一條語(yǔ)句。
塊可以為空,表示不包含任何語(yǔ)句,即一對(duì)空的花括號(hào)。
24阻塞操作(blocking operation):
一個(gè)操作如果需要等待某些事件發(fā)生就稱為“阻塞”操作,比如從網(wǎng)絡(luò)連接讀取數(shù)據(jù)。
執(zhí)行阻塞操作的線程會(huì)一直處在“阻塞”狀態(tài),直到事件發(fā)生。處于阻塞狀態(tài)時(shí),線程不能執(zhí)行任何指令。
而程序中的其它線程可以繼續(xù)執(zhí)行。
25阻塞隊(duì)列(blocking queue):
當(dāng)阻塞隊(duì)列為空時(shí),出隊(duì)操作會(huì)引發(fā)阻塞,直到隊(duì)列中有新成員加入。
如果阻塞隊(duì)列有大小限制,當(dāng)隊(duì)列填滿時(shí),入隊(duì)操作也會(huì)引起阻塞。
26自底向上設(shè)計(jì)(bottom-up design):
自底向上設(shè)計(jì)是一種軟件設(shè)計(jì)方法。從系統(tǒng)的基礎(chǔ)組件開(kāi)始設(shè)計(jì),然后將它們組合成更復(fù)雜的組件,諸如此類。
27BufferedImage類:
BufferedImage類展示了“屏外畫(huà)布”,即圖片存儲(chǔ)在計(jì)算機(jī)內(nèi)存中,可以在屏幕外進(jìn)行繪制。
28分支(branch):
分支是一種控制結(jié)構(gòu),計(jì)算機(jī)通過(guò)分支從2個(gè)或多個(gè)不同的執(zhí)行路徑中進(jìn)行選擇。
Java有兩種分支語(yǔ)句:if 語(yǔ)句和 switch 語(yǔ)句。
29字節(jié)(byte):
字節(jié)是一種由8個(gè)比特組成的內(nèi)存單元。
一個(gè)字節(jié)可以保存8個(gè)比特二進(jìn)制數(shù)。
30字節(jié)碼(bytecode):
“Java字節(jié)碼”是Java虛擬機(jī)機(jī)器語(yǔ)言的常用名稱。
Java程序會(huì)被編譯成Java字節(jié)碼,后者由JVM執(zhí)行。
31字符集(charset):
字符集是一種將字符數(shù)據(jù)編碼為二進(jìn)制的特定編碼形式。例如UTF-8和ISO-8859-1。
32受檢異常(checked exception):
在Java中受檢異常必須處理,可以通過(guò) try catch 語(yǔ)句捕獲,或者在方法上使用 throw 語(yǔ)句拋出該異常。
如果沒(méi)有用這兩種方式處理受檢異常,會(huì)報(bào)告語(yǔ)法錯(cuò)誤。
33類(class):
類是Java的基礎(chǔ)編程單元。
類是靜態(tài)方法、非靜態(tài)方法和變量的集合。
靜態(tài)成員是類自身的一部分,非靜態(tài)或“實(shí)例”成員是創(chuàng)建對(duì)象的藍(lán)本,由此創(chuàng)建的對(duì)象“屬于”該類。
34類變量(class variable)和類方法(class methods):
“靜態(tài)變量”和“靜態(tài)方法”的別名。它們是類的一部分,與對(duì)象無(wú)關(guān)。
35客戶端/服務(wù)器(client/server):
一種網(wǎng)絡(luò)通訊模式。
其中,“服務(wù)器”在網(wǎng)絡(luò)上守候某個(gè)已知地址,等待“客戶端”向它發(fā)起連接請(qǐng)求。
這是TCP/IP協(xié)議的基礎(chǔ)通訊模型。
36命令行接口(command-line interface):
一種計(jì)算機(jī)交互方法。用戶向計(jì)算機(jī)輸入命令,計(jì)算機(jī)對(duì)每個(gè)命令進(jìn)行響應(yīng)。
37注釋(comment):
在一個(gè)計(jì)算機(jī)程序中,注釋是那些被計(jì)算機(jī)忽略的文本。注釋的目的是方便人們閱讀,幫助理解程序。
38編譯器(compiler):
編譯器是一種計(jì)算機(jī)程序,將某種計(jì)算機(jī)語(yǔ)言(通常是高級(jí)語(yǔ)言)編寫(xiě)的程序翻譯成機(jī)器語(yǔ)言程序。
39組件(component):
組件是對(duì)GUI可視元素的泛稱,包括窗口、按鈕或菜單等。
在Java中,組件表現(xiàn)為 java.awt.Component 子類創(chuàng)建的對(duì)象。
40構(gòu)造函數(shù)(constructor):
類的一種特殊子程序,主要用來(lái)創(chuàng)建類的對(duì)象。
構(gòu)造函數(shù)一般使用 new 操作符進(jìn)行調(diào)用,通常不被看做“方法”。
41容器(container):
類似 JPanel 這樣的組件,容器可以包含其它GUI組件。
調(diào)用容器的 add() 方法可以向其添加組件。
42方法契約(contract of a method):
方法接口的語(yǔ)義組件。
它指明了方法及其調(diào)用者的職責(zé),如何調(diào)用該方法,以及正確調(diào)用方法時(shí)會(huì)執(zhí)行的任務(wù)。
方法契約應(yīng)當(dāng)在該方法的Javadoc注釋中完整說(shuō)明。
43控制結(jié)構(gòu)(control structure):
類似 if 語(yǔ)句、while 循環(huán)這樣可影響程序控制流(即程序中指令執(zhí)行順序)的程序結(jié)構(gòu)。
44CPU:
中央處理器。CPU是計(jì)算機(jī)中實(shí)際執(zhí)行計(jì)算和運(yùn)行程序的部分。
45數(shù)據(jù)結(jié)構(gòu)(data structure):
經(jīng)過(guò)組織的數(shù)據(jù)集合。在程序中被當(dāng)做一個(gè)單元處理。
46死鎖(deadlock):
一種多個(gè)線程無(wú)限等待的情況。出現(xiàn)死鎖的原因,比如每個(gè)線程都在等待其它線程鎖定的資源。
47默認(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)方法。
48默認(rèn)包(default package):
默認(rèn)包沒(méi)有包名。
沒(méi)有在帶有名字的包中聲明的類都?xì)w屬默認(rèn)包。
49明確賦值(definite assignment):
在程序中,變量在使用前必須確保已經(jīng)被賦值。
局部變量只有在賦值后才能合法使用。
為了達(dá)到這個(gè)要求,編譯器必須對(duì)變量從聲明開(kāi)始到使用的每條路徑都進(jìn)行賦值檢查。
50棄用(deprecated):
表示已經(jīng)廢棄,但為了先后兼容仍然保留。
棄用的Java類或方法仍然是Java語(yǔ)言的一部分,但不建議在新代碼中使用。
在未來(lái)的Java版本中,棄用的內(nèi)容會(huì)被移除。
51對(duì)話框(dialog box):
對(duì)話框是依賴其它窗體創(chuàng)建的新窗體。
彈出對(duì)話框通常用作獲取用戶信息或展示消息。
Swing API中,對(duì)話框表示為 JDialog 創(chuàng)建的對(duì)象。
52分布式計(jì)算(distributed computing):
一種在由網(wǎng)絡(luò)連接的多個(gè)計(jì)算機(jī)中進(jìn)行的并行處理。
53虛參數(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ù)”)。
54枚舉類型(enum):
枚舉類型的定義中列舉了該類型所有可能值。
在Java中,枚舉類型是一個(gè)類,所有可能的值都是對(duì)象。
55事件(event):
在GUI編程中,事件指發(fā)生在程序控制以外的操作,比如點(diǎn)擊鼠標(biāo)。
程序必須對(duì)發(fā)生的事件進(jìn)行響應(yīng)。
56異常(exception):
程序控制流程之外的錯(cuò)誤或異常情況。
在Java中,異常表示為 Throwable 對(duì)象,可以由 try..catch 語(yǔ)句捕捉并處理。
57獲取-執(zhí)行周期(fetch-and-execute cycle):
也稱指令周期。
指CPU執(zhí)行機(jī)器語(yǔ)言程序的過(guò)程。
CPU會(huì)從內(nèi)存獲取(即讀取)指令,執(zhí)行(運(yùn)行)指令,然后再循環(huán)重復(fù)該過(guò)程。
58標(biāo)志(flag):
一個(gè)布爾值。
設(shè)為 true 時(shí)表示達(dá)到某些條件或發(fā)生了某種事情。
可利用二進(jìn)制數(shù)中的某個(gè)比特位作為標(biāo)志。
59形式參數(shù)(formal parameter):
“虛擬參數(shù)”的另一種說(shuō)法。
60幀(frame):
組成動(dòng)畫(huà)的某一幅畫(huà)面,也是活動(dòng)記錄的另一種說(shuō)法。
61函數(shù)(function):
帶有返回值的子程序。
62垃圾回收(garbage collection):
自動(dòng)回收內(nèi)存的過(guò)程。被回收的內(nèi)存由對(duì)象占用但已不再會(huì)對(duì)其訪問(wèn)。
63泛型編程(generic programming):
編寫(xiě)的代碼不僅限于單一數(shù)據(jù)類型,可適應(yīng)多種數(shù)據(jù)類型。
Java集合框架及其它使用了相似技術(shù)的類都是泛型編程的實(shí)例。
64getter方法:
類中的一個(gè)實(shí)例方法,用來(lái)讀取類的某個(gè)屬性值。
通常,屬性代表一些實(shí)例變量的值。按慣例,getter方法被命名為 getXyz(),其中 xyz 是屬性的名字。
65全局變量(global variable):
成員變量的別名。強(qiáng)調(diào)類中的成員變量可以在類方法外存在。
66圖形上下文(graphics context):
用來(lái)繪制某些特定地點(diǎn)所必須得數(shù)據(jù)和方法。Java中的圖形上下文是屬于 Graphics 類的對(duì)象。
67GUI:
圖形用戶界面是與計(jì)算機(jī)的現(xiàn)代交互方式。
計(jì)算機(jī)通過(guò)GUI在顯示器上展示類似按鈕和菜單這樣的接口組件,用戶可以通過(guò)像鼠標(biāo)點(diǎn)擊這樣的方式與之交互。
68哈希表(hash table):
一種優(yōu)化的數(shù)據(jù)結(jié)構(gòu),可以高效搜索、插入和刪除對(duì)象。哈希表包含對(duì)象的地址數(shù)組。
對(duì)象存儲(chǔ)的地址由自身的“哈希代碼”決定。通過(guò)對(duì)象的內(nèi)容可以高效地計(jì)算出地址整數(shù)值。
69堆(heap):
計(jì)算機(jī)內(nèi)存中存儲(chǔ)對(duì)象的區(qū)域。
70高級(jí)語(yǔ)言(high level language):
類似Java這樣的計(jì)算機(jī)語(yǔ)言,方便人們閱讀,但在執(zhí)行前需要翻譯成機(jī)器語(yǔ)言。
71HSB:
一種顏色系統(tǒng)。
其中顏色由3個(gè)數(shù)值表示(在Java中,實(shí)際的數(shù)值在0.0到1.0之間)。分別代表色調(diào)、飽和度和亮度。
72IDE:
集成開(kāi)發(fā)環(huán)境。
帶圖形用戶界面的編程環(huán)境,集成了創(chuàng)建、編輯和執(zhí)行程序的各種工具。
73標(biāo)識(shí)符(identifier):
在程序中可用作名字的一組標(biāo)識(shí)符。
標(biāo)識(shí)符可用作變量名、方法名和類名。
74索引號(hào)(index):
元素在數(shù)組中的位置編號(hào)。
75實(shí)現(xiàn)(implementation):
黑盒的內(nèi)部實(shí)現(xiàn),比如子程序的實(shí)現(xiàn)代碼。
76不可變對(duì)象(immutable object):
不可變對(duì)象構(gòu)造完成后不能改變,因?yàn)閷?shí)例中所有變量都標(biāo)記為 final。
77無(wú)限循環(huán)(infinite loop):
循環(huán)永遠(yuǎn)不會(huì)結(jié)束,因?yàn)樗难h(huán)條件永遠(yuǎn)判定為 true。
78繼承(inheritence):
一個(gè)類可以繼承另一個(gè)類。
繼承者會(huì)從父類繼承數(shù)據(jù)和行為。
79類的實(shí)例(instance of a class):
指歸屬于類(或者該類型子類)的對(duì)象。
當(dāng)類用作對(duì)象模板時(shí),對(duì)象由類中的構(gòu)造函數(shù)創(chuàng)建的對(duì)象歸屬于這個(gè)類。
80實(shí)例方法(instance method):
類中的非靜態(tài)方法,該類的所有實(shí)例都具有該方法。
81實(shí)例變量(instance variable):
類中的非靜態(tài)變量,該類的所有實(shí)例都包含該變量。
82接口(interface):
對(duì)如何使用類似子程序這樣的黑盒子一種通用說(shuō)法。
接口對(duì)其內(nèi)部發(fā)生的情況沒(méi)有提供任何信息。“interface”同時(shí)也是Java中的保留字。
從這個(gè)意義上說(shuō),接口是一種定義了一個(gè)或多個(gè)抽象方法的類型。實(shí)現(xiàn)該接口的對(duì)象必須提供這些方法的定義。
83解釋器(interpreter):
一種執(zhí)行程序的計(jì)算機(jī)程序,被執(zhí)行的程序由某種編程語(yǔ)言編寫(xiě)。
通過(guò)從程序中一個(gè)接一個(gè)讀取指令然后逐條執(zhí)行(將指令翻譯為等價(jià)的機(jī)器語(yǔ)言)。
84I/O:
輸入/輸出。
計(jì)算機(jī)程序與其它部分的通訊方式,比如向用戶展示數(shù)據(jù)、從用戶那里獲取信息、讀寫(xiě)文件、通過(guò)網(wǎng)絡(luò)發(fā)送和獲取數(shù)據(jù)。
85迭代器(iterator):
與 list 或 set 這樣的集合相關(guān)聯(lián)的對(duì)象。可用來(lái)對(duì)該集合進(jìn)行遍歷。
迭代器會(huì)輪流訪問(wèn)集合中的每個(gè)元素。
86Java集合框架(Java Collection Framework JCF):
一組實(shí)現(xiàn)了泛型數(shù)據(jù)結(jié)構(gòu)的標(biāo)準(zhǔn)類。包括 ArrayList、TreeSet 等。
87JavaFX:
新的應(yīng)用程序GUI工具集。
在Java 8中推薦使用。
JavaFX不在本書(shū)的討論范圍。
88JDK:
Java開(kāi)發(fā)工具集。
支持編譯、運(yùn)行Java程序的基本軟件。
JDK包含命令行編程環(huán)境以及JRE。
要編譯Java源代碼或執(zhí)行預(yù)編譯程序時(shí),需要使用JDK。
89JRE(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類。
90即時(shí)編譯器(just-in-time compiler):
一種解釋器和編譯器的結(jié)合,在解釋程序某部分的同時(shí)可對(duì)其進(jìn)行編譯。
接下來(lái)對(duì)該部分程序執(zhí)行時(shí)比首次運(yùn)行更快速。
這樣可以大大提高執(zhí)行速度。現(xiàn)代JVM都使用了即時(shí)編譯器。
91JVM:
Java虛擬機(jī)。
將Java字節(jié)碼作為機(jī)器語(yǔ)言執(zhí)行的虛擬計(jì)算機(jī)。
也用來(lái)稱呼解析字節(jié)碼程序的計(jì)算機(jī)程序。
要在計(jì)算機(jī)上運(yùn)行Java程序需要使用JVM。
92布局管理器(layout manager):
負(fù)責(zé)對(duì)容器中組件進(jìn)行布局的對(duì)象。
進(jìn)行的部分操作包括設(shè)置大小和位置。
不同類型的布局管理器實(shí)現(xiàn)的布局策略各不相同。
93鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)(linked data structure):
一組由之指針相互鏈接的對(duì)象數(shù)據(jù)。
這些指針存儲(chǔ)在對(duì)象的實(shí)例變量中。
鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)包括鏈表和二叉樹(shù)。
94鏈表(linked list):
一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),節(jié)點(diǎn)之間由指針串連形成線性鏈表。
95監(jiān)聽(tīng)器(listener):
在GUI編程中,可以向?qū)ο笞?cè)特定事件的觸發(fā)通知。
因此可以說(shuō),對(duì)象在“監(jiān)聽(tīng)”這些事件。
96文字(literal):
在程序中鍵入的一組字符序列,表示常量值。
例如,當(dāng)A在Java程序中出現(xiàn)時(shí),’A'是一個(gè)常量字符。
97(內(nèi)存)位置(location in memory):
計(jì)算機(jī)內(nèi)存由一系列位置組成。
這些位置順序編號(hào),標(biāo)識(shí)特定位置的編號(hào)被稱為該位置的地址。
98本地變量(local variable):
在方法內(nèi)部聲明的變量,只能在該方法內(nèi)部使用。
代碼塊中聲明變量的有效性,從聲明處開(kāi)始到該代碼塊的尾部結(jié)束。
99循環(huán)(loop):
一種控制結(jié)構(gòu),重復(fù)執(zhí)行一組指令。
Java提供了3種循環(huán):for 循環(huán)、while 循環(huán)和 do 循環(huán)。
100循環(huán)控制變量(loop control variable):
for 循環(huán)中的變量,每次執(zhí)行 for 循環(huán)時(shí)都會(huì)修改循環(huán)變量值,通過(guò)檢查該變量決定是否結(jié)束循環(huán)。
101機(jī)器語(yǔ)言(machine language):
由計(jì)算機(jī)能夠直接執(zhí)行的指令組成的編程語(yǔ)言。
機(jī)器語(yǔ)言中的指令會(huì)被編碼成二進(jìn)制數(shù)。
每種類型的計(jì)算機(jī)都有自己的機(jī)器語(yǔ)言。
用其它語(yǔ)言編寫(xiě)的程序必須翻譯為該計(jì)算的機(jī)器語(yǔ)言,才能在它上面執(zhí)行。
102主內(nèi)存(main memory):
程序和數(shù)據(jù)可以存儲(chǔ)在計(jì)算機(jī)的主內(nèi)存中,主內(nèi)存可以被CPU直接訪問(wèn)。
其它形式的內(nèi)存,比如磁盤(pán)驅(qū)動(dòng)器,雖然也能存儲(chǔ)信息,但是唯有主內(nèi)存可被CPU直接訪問(wèn)。
磁盤(pán)分區(qū)中的程序和數(shù)據(jù)只有拷貝到內(nèi)存中才能被CPU訪問(wèn)。
103map:
一種映射數(shù)組。
這種數(shù)據(jù)結(jié)構(gòu)將一組(Collection)中的某個(gè)對(duì)象與摸個(gè)集合(Set)中的所有對(duì)象關(guān)聯(lián)在一起。
在Java中,map 由泛型接口 Map 表示。
104成員變量(member variable):
定義在類中的變量,但不屬于任何方法。
成員變量與本地變量不同,后者在某個(gè)方法中定義。
105內(nèi)存(memory):
計(jì)算機(jī)中的內(nèi)存用來(lái)存儲(chǔ)程序和數(shù)據(jù)。
106方法(method):
子程序的另一種稱呼,在面向?qū)ο缶幊讨惺褂谩?/p>
方法指包含在類或?qū)ο笾械淖映绦颉?/p>
107模塊(module):
大型系統(tǒng)中的組件,與系統(tǒng)中其它部分以簡(jiǎn)單、定義清晰、直接的方式進(jìn)行交互。
108多任務(wù)(multitasking):
一次執(zhí)行多個(gè)編程任務(wù)。
要么在多個(gè)任務(wù)之間快速來(lái)回切換,要么同時(shí)逐個(gè)執(zhí)行多個(gè)任務(wù)。
109多重處理(multiprocessing):
進(jìn)行多任務(wù)處理時(shí)使用多個(gè)處理器。
這樣,多個(gè)任務(wù)可以同時(shí)逐個(gè)執(zhí)行。
110互斥(mutual exclusion):
防止兩個(gè)線程同時(shí)訪問(wèn)相同的資源。
在Java中,這種方法應(yīng)用于多個(gè)線程同時(shí)訪問(wèn)同步方法或同步語(yǔ)句中的資源。
互斥可以阻止競(jìng)態(tài)條件,但是可能引發(fā)死鎖。
111MVC模式(MVC pattern):
模型-視圖-控制器模式。
一種用在GUI組件中進(jìn)行職責(zé)劃分的策略。
模型代表組件的數(shù)據(jù),視圖指該模型在屏幕上的展示,控制器負(fù)責(zé)響應(yīng)模型變化事件。
在MVC模式中,這些職責(zé)由不同的對(duì)象負(fù)責(zé)處理。
112非數(shù)值(NaN):
不是一個(gè)數(shù)值。
Double.NaN表示一種特殊的 double 值,表示未定義或非法值。
113節(jié)點(diǎn)(node):
鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)中,某個(gè)對(duì)象的常用稱呼。
114null:
一種特殊的指針值,表示“沒(méi)有指向任何東西”。
115數(shù)值分析(numerical analysis):
使用逼近法研究算法的領(lǐng)域,比如實(shí)數(shù)以及從逼近計(jì)算中得到的錯(cuò)誤。
116差一錯(cuò)誤(off-by-one error):
一種常見(jiàn)錯(cuò)誤,處理時(shí)多減或多加了一個(gè)元素。
通常是技術(shù)錯(cuò)誤或者循環(huán)時(shí)由其它原因過(guò)早停止或過(guò)度執(zhí)行造成的。
117對(duì)象(object):
計(jì)算機(jī)程序中帶有數(shù)據(jù)(變量)和行為(方法)的實(shí)體。
Java中的對(duì)象必須以某個(gè)類作為創(chuàng)建模板。對(duì)象所屬的類決定了對(duì)象包含的類和方法。
118對(duì)象類型(object type):
這種類型的值是對(duì)象而非基礎(chǔ)類型。
類和接口都是對(duì)象類型。
119OOP(Object-Oriented Programming):
面向?qū)ο缶幊獭?/p>
一種計(jì)算機(jī)程序設(shè)計(jì)和實(shí)現(xiàn)的方法。
OOP使用類和對(duì)象創(chuàng)建、表示實(shí)體及實(shí)體間的交互。
120操作系統(tǒng)(operating system):
在計(jì)算機(jī)中一直運(yùn)行的基礎(chǔ)軟件。
沒(méi)有操作系統(tǒng)的計(jì)算機(jī)無(wú)法工作。
操作系統(tǒng)由linux、Mac OS 和 windows Vista。
121操作符(operator):
類似“+”、“<=”或”++”這樣的操作符,可以在表達(dá)式中計(jì)算一個(gè)或多個(gè)值。
122(操作符)重載(overloading of operators):
相同操作符可以在不同類型的數(shù)據(jù)上使用。
比如“+”操作可以同時(shí)應(yīng)用于數(shù)字和字符類型。
123(方法名)重載(overloading of method names):
同一個(gè)類中定義了幾個(gè)名稱相同的方法,區(qū)別在于各個(gè)方法的簽名不同。
124重寫(xiě)(覆蓋)(overriding):
在子類中進(jìn)行重定義。
子類中,對(duì)從父類繼承的方法重新定義,新定義的方法就是對(duì)原方法進(jìn)行重寫(xiě)。
125包(package):
在Java中,相關(guān)類和子包的有名集合稱為包。
例如 java.awt 和 javax.swing。
126并行處理(parallel processing):
同時(shí)執(zhí)行多個(gè)任務(wù),可以是多個(gè)處理器,也可以由一個(gè)處理器在多個(gè)任務(wù)間返復(fù)執(zhí)行。
127參數(shù)(parameter):
調(diào)用子程序時(shí),參數(shù)用來(lái)向子程序提供信息。
在執(zhí)行子程序代碼前,子程序調(diào)用語(yǔ)句中的“實(shí)參”會(huì)分配給子程序定義的“虛參數(shù)”。
128參數(shù)化類型(parameterized type):
類似 ArrayList 這樣,包含了一種或多種類型參數(shù)的類型(這里的參數(shù)類型是String)。
129解析(parsing):
確定預(yù)演中字符串語(yǔ)法結(jié)構(gòu)的過(guò)程。
解析字符串用來(lái)確定字符串中是否遵循該語(yǔ)言的語(yǔ)法;如果是,那么會(huì)確定該字符串是如何根據(jù)語(yǔ)法進(jìn)行創(chuàng)建。
130部分完全數(shù)組(partially full array):
數(shù)組是用來(lái)存儲(chǔ)數(shù)量各異的元素。
部分完全數(shù)組表示為一個(gè)帶有追蹤元素個(gè)數(shù)計(jì)數(shù)器的普通數(shù)組。
131像素(pixel):
指屏幕或圖片中的“圖像元素”。
一幅圖像由像素的行和列組成。每個(gè)像素的色彩都可以單獨(dú)設(shè)置。
132多態(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 變量的類型。
133指針(pointer):
代表計(jì)算機(jī)內(nèi)存中某個(gè)地址的值,因此可以看做“指向”具有該地址的位置。
在Java中,變量不存有對(duì)象;變量只是指向存儲(chǔ)該對(duì)象的位置。指針也稱作“引用”。
134語(yǔ)用學(xué)(pragmatics):
描述如何編寫(xiě)好程序的經(jīng)驗(yàn)法則。
例如樣式規(guī)則、程序組織指南都是編程語(yǔ)用學(xué)的一部分。
135優(yōu)先級(jí)(precedence):
操作符的優(yōu)先級(jí)指,在沒(méi)有括號(hào)的情況下,表達(dá)式中多個(gè)操作符的作用順序。
136前置條件(precondition):
在程序的執(zhí)行過(guò)程中,為了讓程序正確運(yùn)行,前置條件必須判定為 true。
子程序的前置條件是指,為了讓子程序正確運(yùn)行必須滿足的前置條件。
子程序的前置條件通常是對(duì)傳入的子程序的實(shí)參值進(jìn)行的限制。
137優(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í)最高的元素)
138后置條件(postcondition):
在執(zhí)行程序的某個(gè)節(jié)點(diǎn),該條件的計(jì)算結(jié)果為 true。
子程序的后置條件在子程序執(zhí)行結(jié)束后必須為 true。
函數(shù)的后置條件通常表示為函數(shù)的返回值。
139基本類型(primitive type):
Java的8個(gè)內(nèi)建基本數(shù)據(jù)類型有 double、float、long、int、short、byte、boolean 和 char。
基本類型變量存儲(chǔ)了真實(shí)的值,而非指向數(shù)值的指針。
140線程優(yōu)先級(jí)(priority of a thread):
與線程關(guān)聯(lián)的整數(shù)值,可以影響線程的執(zhí)行順序。
優(yōu)先級(jí)高的線程比優(yōu)先級(jí)低的線程提前執(zhí)行。
141生產(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)者模式。
142程序(program):
用某種合適的編程語(yǔ)言編寫(xiě)的一組指令,由計(jì)算機(jī)執(zhí)行。
用做動(dòng)詞時(shí),表示創(chuàng)建該指令的動(dòng)作。
143編程語(yǔ)言(programming language):
用來(lái)為計(jì)算機(jī)編程的一種語(yǔ)言。
編程語(yǔ)言的復(fù)雜性,從機(jī)器語(yǔ)言到像Java這樣的高級(jí)語(yǔ)言跨度很大。
144協(xié)議(protocol):
在指定上下文中,構(gòu)成合法通信的一組規(guī)范。
協(xié)議中規(guī)定了合法的消息、傳送的時(shí)間、期待的恢復(fù)類型等。
145偽代碼(pseudocode):
非正式算法規(guī)范。
與實(shí)際編程語(yǔ)言相比,偽代碼更加接近英語(yǔ)。
并且,通常無(wú)需明確地寫(xiě)出過(guò)程的每個(gè)細(xì)節(jié)。
146隊(duì)列(queue):
由一組元素構(gòu)成的數(shù)據(jù)結(jié)構(gòu)。
只能在列表的一頭添加數(shù)據(jù),在列表的另一頭移除數(shù)據(jù)。
147競(jìng)態(tài)條件(race condition):
并行編程中可能的錯(cuò)誤源。
由于某個(gè)線程改變了第二個(gè)程序依賴的程序狀態(tài)(比如變量值),從而引發(fā)錯(cuò)誤。
148RAM(Random Access Memory):
隨機(jī)訪問(wèn)內(nèi)存。
計(jì)算機(jī)主內(nèi)存的同義詞。
然而,從技術(shù)角度看,RAM是指在任意時(shí)間內(nèi)都可以同樣訪問(wèn)內(nèi)存地址。
RAM也意味著可以同時(shí)讀寫(xiě)數(shù)據(jù)。
149遞歸(recursion):
用自身的形式定義自己。
特別地,遞歸子程序可以直接或通過(guò)一系列其它子程序間接調(diào)用自己。
遞歸算法的工作方式,通過(guò)將一個(gè)復(fù)雜問(wèn)題拆分成更小的子問(wèn)題。
子問(wèn)題要么可以直接解決,要么可以“遞歸”使用相同的算法。
150RGB:
一種顏色系統(tǒng)。
顏色由3個(gè)數(shù)值定義(在Java中,數(shù)值的范圍從0到255)。
分別表示顏色中的紅色、綠色和藍(lán)色組成。
151引用(reference):
“指針”的另一種稱呼。
152函數(shù)返回類型(return type of a function):
函數(shù)返回值的類型。
153保留字(關(guān)鍵字)(reserved word):
一組字符串序列,看起來(lái)和標(biāo)識(shí)符很像。
但是由于在編程語(yǔ)言中有特殊含義,所以不能用作標(biāo)識(shí)符。
例如 class、public 是Java中的保留字。
154資源(resource):
圖片、聲音、文字或程序中的數(shù)據(jù)文件都是資源。
Java資源文件與編譯好的class文件存儲(chǔ)在相同的路徑(class path)。
155健壯的程序(robust program):
健壯的程序不僅正確,同時(shí)也能合理地處理錯(cuò)誤,比如文件不存在或者無(wú)法建立網(wǎng)絡(luò)連接。
156集合(set):
沒(méi)有重復(fù)的一組對(duì)象。
在Java中,集合用泛型接口 Set 表示。
157作用域(scope):
表示程序中聲明的標(biāo)識(shí)符的有效作用域。
158語(yǔ)義(semantics):
語(yǔ)義是指,語(yǔ)言的語(yǔ)義規(guī)則決定了該語(yǔ)言中字符串符號(hào)(例如句子或語(yǔ)句)的含義。
159哨兵值(sentinel value):
表示數(shù)據(jù)序列結(jié)束的特殊標(biāo)記,表明該數(shù)據(jù)已結(jié)束。
160setter方法:
類中的實(shí)例方法,用來(lái)設(shè)置類中的一些屬性值。
通常,這些屬性只是實(shí)例變量值。
按照慣例,setter 方法命名為 setXyz(),其中 xyz 是屬性的名字。
161方法簽名(signature of a method):
方法名、方法定義中形參的個(gè)數(shù)以及每個(gè)形參的類型。
編譯器通過(guò)方法簽名來(lái)識(shí)別指定子程序調(diào)用語(yǔ)句究竟調(diào)用了哪個(gè)方法。
162套接字(socket):
網(wǎng)絡(luò)上兩個(gè)計(jì)算機(jī)之間的連接,對(duì)其中一端的抽象表示。
套接字表示計(jì)算機(jī)程序間的一個(gè)邏輯連接,而非計(jì)算機(jī)間的物理連接。
163棧(stack):
一組元素組成的列表數(shù)據(jù)結(jié)構(gòu),只能在列表的尾部,也稱作“棧頂”。
向棧中添加元素叫“入棧 push”,移除元素稱作“出棧 pop”。
棧也指用來(lái)實(shí)現(xiàn)子程序調(diào)用的活動(dòng)記錄。
164標(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)輸出也可以重定向到其它源,比如文件。
165標(biāo)準(zhǔn)輸出(standard output):
程序?qū)⑤敵鑫谋緦?xiě)入的標(biāo)準(zhǔn)目標(biāo),由 System.out 對(duì)象表示。
通常,標(biāo)準(zhǔn)輸出會(huì)向用戶展示,但是也可以“重定向”到其它目標(biāo),比如文件。
此外,System.err 對(duì)象用來(lái)輸出錯(cuò)誤信息。
166狀態(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ī)。
167逐步精化法(step-wise refinement):
一種算法開(kāi)發(fā)技術(shù)。
開(kāi)始列出算法步驟大綱,通常用偽代碼表示,然后逐步填充細(xì)節(jié)。
168流(stream):
輸入數(shù)據(jù)源或輸出數(shù)據(jù)目標(biāo)的抽象表示。
Java為字符和二進(jìn)制數(shù)據(jù)輸入、輸出流提供了4個(gè)基礎(chǔ)類。
這些類組成了Java I/O API的基礎(chǔ)。
169源代碼(source code):
用高級(jí)編程語(yǔ)言編寫(xiě)的文本。
在計(jì)算機(jī)執(zhí)行前,必須翻譯成機(jī)器語(yǔ)言,比如Java字節(jié)碼。
170子類(subclass):
一個(gè)類,直接或間接繼承了其它類,從而繼承了它的數(shù)據(jù)和行為。
前一個(gè)類就叫做第二類的子類。
171子程序(subroutine):
一系列程序指令。
通過(guò)子程序名可以“調(diào)用”該子程序。
在面向?qū)ο缶幊讨校映绦蛞卜Q作方法。
172子程序調(diào)用語(yǔ)句(subroutine call statement):
程序中調(diào)用子程序的語(yǔ)句。
當(dāng)執(zhí)行子程序調(diào)用語(yǔ)句時(shí),計(jì)算機(jī)會(huì)執(zhí)行子程序內(nèi)部的代碼。
173super:
一個(gè)特殊變量,在實(shí)例方法中自動(dòng)定義。
super指包含該方法的對(duì)象,歸屬于方法所在類的父類。
super可以訪問(wèn)父類中被隱藏的成員變量,這些變量與子類中的成員變量同名。
174語(yǔ)法(syntax):
定義了該語(yǔ)言中哪些字符串符號(hào)符合該語(yǔ)言的語(yǔ)法規(guī)則。
175TCP/IP:
Internet上用來(lái)網(wǎng)絡(luò)通訊的協(xié)議。
176this:
一個(gè)特殊變量,在實(shí)例方法中自動(dòng)定義,歸屬于方法所在的類。
177線程(thread):
對(duì)一系列逐條執(zhí)行語(yǔ)句的抽象表示。
計(jì)算機(jī)可以并行執(zhí)行多個(gè)線程。
178線程池(thread pool):
執(zhí)行任務(wù)時(shí)可以使用的一組“工作線程”。
當(dāng)任務(wù)就緒時(shí),可分配給池中的線程。線程池通常使用阻塞式隊(duì)列存儲(chǔ)任務(wù)。
179自頂向下設(shè)計(jì)(top-down design):
一種軟件設(shè)計(jì)方法。
開(kāi)始把問(wèn)題作為一個(gè)整體,然后拆分成更小的問(wèn)題,再逐步細(xì)化,直到子問(wèn)題可以直接解決。
180類型(type):
數(shù)值的特定類型。
例如,int類型規(guī)定了整形值可以表示為32比特二進(jìn)制數(shù)。
在Java中,類型可以是基本類型、類名或接口名。
類型名可用來(lái)定義變量的類型,子程序中的虛擬參數(shù)和子程序的返回類型。
181類型轉(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ù)部分。
182Unicode:
將字符編碼成二進(jìn)制數(shù)的一種方式。
Unicode字符集包含了許多語(yǔ)言的字符,不僅限于英語(yǔ)。Java內(nèi)部使用的就是Unicode字符集。
183URL:
全球資源定位器。
Internet上資源的地址,比如網(wǎng)頁(yè)。
184變量(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ù)的種類。
185包裝類(wrapper class):
類似 Double、Integer這樣的類,將一個(gè)基本類型的值“包裝”在對(duì)象中,該對(duì)象歸屬于包裝類。
這樣,在需要使用對(duì)象的地方也可以使用基本類型值,比如Java集合框架。
186XML(eXtensible Markup Language):
可擴(kuò)展標(biāo)記語(yǔ)言。
一種非常常見(jiàn)且語(yǔ)法標(biāo)準(zhǔn)、支持良好的語(yǔ)言。
用來(lái)創(chuàng)建基于文本的數(shù)據(jù)表示。