原文作者:程序员共读
对于刚开始学JAVA的同学来说,经常会出现一些名称,却不知其作用是什么。作者搜集了有186个Java入门常用的词汇,为初学者排忧解难。另外,工作多年的开发者们,你们这些单词都认识么?
1抽象类(abstract class):
抽象类不能创建对象,主要用来创建子类。
Java中的抽象类使用 abstract 修饰符定义。
2抽象数据类型(abstract data type ADT):
抽象数据类型指明了可能的类型和允许进行的操作,但是没有提供实现。
3访问标识符(access specifier):
用于方法或变量定义,限定了哪些类可以访问该方法或变量。
Java中的访问标识符有 public、protected 和 private。
没有访问标识符修饰的方法或变量默认可见性为“package”。
4活动记录(activation record):
活动记录是包含了实现子程序调用必须的所有信息,包括参数值、子程序中的本地变量和子程序调用结束时计算机的返回地址。
活动记录存储在栈中,使得多个子程序调用同时活跃成为可能。
这对递归非常重要,递归时对同一个子程序的多个调用要求同时激活。
5实参(actual parameter):
子程序的参数叫做声明。当调用执行时,通过声明把值传递给自函数。实参也叫做“参数”。
6地址(address):
计算机内存中的每个位置都有一个地址,表示该位置的编号。内存中的位置按序号排列。
在现代计算机中,内存中的每个字节都有自己的地址。在存储或读取内存信息时用需要用到地址。
7算法(algorithm):
完成某项任务所需要的一步一步的过程,过程本身没有歧义,且可以保证在有限的步骤内完成该任务。
8阿尔法颜色组成(alpha color component):
颜色组成用来描述颜色的透明度或不透明度。阿尔法组成越高,颜色越不透明。
9API:
应用编程接口。针对软件包或“工具箱”的接口说明。
API包含了工具箱中所有类或子程序及其使用说明。
10Applet:
与可以单独运行的应用程序不同,Applet是一种在Web浏览器中运行在Web页面上的Java程序。
11动画(animation):
由一组静态图片快速显示展示出动态效果。每一幅静态图片叫做帧。
在Java中,动画通常由 Timer 对象驱动。
每次定时器触发时,会显示动画的下一帧。
12反锯齿(antialiasing):
当图形和文本以像素方式显示时,可以通过调整像素的颜色减轻“锯齿”效应。
反锯齿画图时,图形只覆盖像素的一部分,图形的颜色与该像素之前的颜色混合而成。混合的程度由覆盖像素的多少决定。
13数组(array):
一个顺序排列的元素列表。列表中,每个元素都可以由自己的索引标识,即序号。
在Java中,数组里所有元素必须类型相同,该类型也称作数组的基类型。
数组是一种可随机访问的数据结构,也就是说,你可以随时直接访问数组中的任意元素。
14数组类型(array type):
这种数据类型的值是数组。比如类型的名字为 Type,那么 Type[] 就是数组类型,基类型为 Type。
15赋值语句(assignment statement):
计算机程序中的一种语句,可以读取或计算数值,并将其存储到变量中。
Java中的赋值语句形式为:变量名 = 表达式。
16异步事件(asynchronous event):
异步事件指发生时间不可预料的事件,计算机程序无法对其控制。
像点击鼠标、按键这样的用户输入事件都是异步的。
17ASCII码:
美国信息交换标准码。这种编码使用7个比特对字符编码。
ASCII码只支持128个字符,不支持重音字符、非英语字符、特殊符号或非字符化语言的表意符号,比如中文。
Java采用了容量更大、更加完整的Unicode编码处理字符。
18基线条件(base case):
在递归算法中,基线条件可以直接处理不需要继续递归。
19二进制数(binary number):
数值被编码为一组0、1序列。一般数字以“10为基数”,二进制数与其类似,只是以“2为基数”。
20二叉树(binary tree):
二叉树是一种链式数据结构。可以为空树,或者由两棵更小的二叉树(可能为空树)与根节点组成。
根节点包含了指向两棵子树的指针。这两棵更小的二叉树被称作左子树和右子树。
21比特(bit):
一位二进制数,可能是0或1。
22黑盒(black box):
指系统或组件在使用时无需关心内部结构。黑盒包括接口和实现。在系统中,被当做组件使用的黑盒叫做模块。
23块(block):
在Java编程中,被花括号({})包围的一组语句称为块。(代码)块用来将一组语句组合成一条语句。
块可以为空,表示不包含任何语句,即一对空的花括号。
24阻塞操作(blocking operation):
一个操作如果需要等待某些事件发生就称为“阻塞”操作,比如从网络连接读取数据。
执行阻塞操作的线程会一直处在“阻塞”状态,直到事件发生。处于阻塞状态时,线程不能执行任何指令。
而程序中的其它线程可以继续执行。
25阻塞队列(blocking queue):
当阻塞队列为空时,出队操作会引发阻塞,直到队列中有新成员加入。
如果阻塞队列有大小限制,当队列填满时,入队操作也会引起阻塞。
26自底向上设计(bottom-up design):
自底向上设计是一种软件设计方法。从系统的基础组件开始设计,然后将它们组合成更复杂的组件,诸如此类。
27BufferedImage类:
BufferedImage类展示了“屏外画布”,即图片存储在计算机内存中,可以在屏幕外进行绘制。
28分支(branch):
分支是一种控制结构,计算机通过分支从2个或多个不同的执行路径中进行选择。
Java有两种分支语句:if 语句和 switch 语句。
29字节(byte):
字节是一种由8个比特组成的内存单元。
一个字节可以保存8个比特二进制数。
30字节码(bytecode):
“Java字节码”是Java虚拟机机器语言的常用名称。
Java程序会被编译成Java字节码,后者由JVM执行。
31字符集(charset):
字符集是一种将字符数据编码为二进制的特定编码形式。例如UTF-8和ISO-8859-1。
32受检异常(checked exception):
在Java中受检异常必须处理,可以通过 try catch 语句捕获,或者在方法上使用 throw 语句抛出该异常。
如果没有用这两种方式处理受检异常,会报告语法错误。
33类(class):
类是Java的基础编程单元。
类是静态方法、非静态方法和变量的集合。
静态成员是类自身的一部分,非静态或“实例”成员是创建对象的蓝本,由此创建的对象“属于”该类。
34类变量(class variable)和类方法(class methods):
“静态变量”和“静态方法”的别名。它们是类的一部分,与对象无关。
35客户端/服务器(client/server):
一种网络通讯模式。
其中,“服务器”在网络上守候某个已知地址,等待“客户端”向它发起连接请求。
这是TCP/IP协议的基础通讯模型。
36命令行接口(command-line interface):
一种计算机交互方法。用户向计算机输入命令,计算机对每个命令进行响应。
37注释(comment):
在一个计算机程序中,注释是那些被计算机忽略的文本。注释的目的是方便人们阅读,帮助理解程序。
38编译器(compiler):
编译器是一种计算机程序,将某种计算机语言(通常是高级语言)编写的程序翻译成机器语言程序。
39组件(component):
组件是对GUI可视元素的泛称,包括窗口、按钮或菜单等。
在Java中,组件表现为 java.awt.Component 子类创建的对象。
40构造函数(constructor):
类的一种特殊子程序,主要用来创建类的对象。
构造函数一般使用 new 操作符进行调用,通常不被看做“方法”。
41容器(container):
类似 JPanel 这样的组件,容器可以包含其它GUI组件。
调用容器的 add() 方法可以向其添加组件。
42方法契约(contract of a method):
方法接口的语义组件。
它指明了方法及其调用者的职责,如何调用该方法,以及正确调用方法时会执行的任务。
方法契约应当在该方法的Javadoc注释中完整说明。
43控制结构(control structure):
类似 if 语句、while 循环这样可影响程序控制流(即程序中指令执行顺序)的程序结构。
44CPU:
中央处理器。CPU是计算机中实际执行计算和运行程序的部分。
45数据结构(data structure):
经过组织的数据集合。在程序中被当做一个单元处理。
46死锁(deadlock):
一种多个线程无限等待的情况。出现死锁的原因,比如每个线程都在等待其它线程锁定的资源。
47默认方法(default method):
Java 8 接口中的方法,该方法提供了自己的实现。
所有实现带有默认方法的接口都可以使用默认实现,但是不能覆盖默认方法。
通过 default 保留字标记默认方法。
Java 7不支持默认方法。
48默认包(default package):
默认包没有包名。
没有在带有名字的包中声明的类都归属默认包。
49明确赋值(definite assignment):
在程序中,变量在使用前必须确保已经被赋值。
局部变量只有在赋值后才能合法使用。
为了达到这个要求,编译器必须对变量从声明开始到使用的每条路径都进行赋值检查。
50弃用(deprecated):
表示已经废弃,但为了先后兼容仍然保留。
弃用的Java类或方法仍然是Java语言的一部分,但不建议在新代码中使用。
在未来的Java版本中,弃用的内容会被移除。
51对话框(dialog box):
对话框是依赖其它窗体创建的新窗体。
弹出对话框通常用作获取用户信息或展示消息。
Swing API中,对话框表示为 JDialog 创建的对象。
52分布式计算(distributed computing):
一种在由网络连接的多个计算机中进行的并行处理。
53虚参数(dummy parameter):
调用子程序时,用来代替实际传入参数的标识符。
虚参数也叫“形式参数”(有时候会用“变元 argument”表示实参,这时虚参数也叫做“参数”)。
54枚举类型(enum):
枚举类型的定义中列举了该类型所有可能值。
在Java中,枚举类型是一个类,所有可能的值都是对象。
55事件(event):
在GUI编程中,事件指发生在程序控制以外的操作,比如点击鼠标。
程序必须对发生的事件进行响应。
56异常(exception):
程序控制流程之外的错误或异常情况。
在Java中,异常表示为 Throwable 对象,可以由 try..catch 语句捕捉并处理。
57获取-执行周期(fetch-and-execute cycle):
也称指令周期。
指CPU执行机器语言程序的过程。
CPU会从内存获取(即读取)指令,执行(运行)指令,然后再循环重复该过程。
58标志(flag):
一个布尔值。
设为 true 时表示达到某些条件或发生了某种事情。
可利用二进制数中的某个比特位作为标志。
59形式参数(formal parameter):
“虚拟参数”的另一种说法。
60帧(frame):
组成动画的某一幅画面,也是活动记录的另一种说法。
61函数(function):
带有返回值的子程序。
62垃圾回收(garbage collection):
自动回收内存的过程。被回收的内存由对象占用但已不再会对其访问。
63泛型编程(generic programming):
编写的代码不仅限于单一数据类型,可适应多种数据类型。
Java集合框架及其它使用了相似技术的类都是泛型编程的实例。
64getter方法:
类中的一个实例方法,用来读取类的某个属性值。
通常,属性代表一些实例变量的值。按惯例,getter方法被命名为 getXyz(),其中 xyz 是属性的名字。
65全局变量(global variable):
成员变量的别名。强调类中的成员变量可以在类方法外存在。
66图形上下文(graphics context):
用来绘制某些特定地点所必须得数据和方法。Java中的图形上下文是属于 Graphics 类的对象。
67GUI:
图形用户界面是与计算机的现代交互方式。
计算机通过GUI在显示器上展示类似按钮和菜单这样的接口组件,用户可以通过像鼠标点击这样的方式与之交互。
68哈希表(hash table):
一种优化的数据结构,可以高效搜索、插入和删除对象。哈希表包含对象的地址数组。
对象存储的地址由自身的“哈希代码”决定。通过对象的内容可以高效地计算出地址整数值。
69堆(heap):
计算机内存中存储对象的区域。
70高级语言(high level language):
类似Java这样的计算机语言,方便人们阅读,但在执行前需要翻译成机器语言。
71HSB:
一种颜色系统。
其中颜色由3个数值表示(在Java中,实际的数值在0.0到1.0之间)。分别代表色调、饱和度和亮度。
72IDE:
集成开发环境。
带图形用户界面的编程环境,集成了创建、编辑和执行程序的各种工具。
73标识符(identifier):
在程序中可用作名字的一组标识符。
标识符可用作变量名、方法名和类名。
74索引号(index):
元素在数组中的位置编号。
75实现(implementation):
黑盒的内部实现,比如子程序的实现代码。
76不可变对象(immutable object):
不可变对象构造完成后不能改变,因为实例中所有变量都标记为 final。
77无限循环(infinite loop):
循环永远不会结束,因为它的循环条件永远判定为 true。
78继承(inheritence):
一个类可以继承另一个类。
继承者会从父类继承数据和行为。
79类的实例(instance of a class):
指归属于类(或者该类型子类)的对象。
当类用作对象模板时,对象由类中的构造函数创建的对象归属于这个类。
80实例方法(instance method):
类中的非静态方法,该类的所有实例都具有该方法。
81实例变量(instance variable):
类中的非静态变量,该类的所有实例都包含该变量。
82接口(interface):
对如何使用类似子程序这样的黑盒子一种通用说法。
接口对其内部发生的情况没有提供任何信息。“interface”同时也是Java中的保留字。
从这个意义上说,接口是一种定义了一个或多个抽象方法的类型。实现该接口的对象必须提供这些方法的定义。
83解释器(interpreter):
一种执行程序的计算机程序,被执行的程序由某种编程语言编写。
通过从程序中一个接一个读取指令然后逐条执行(将指令翻译为等价的机器语言)。
84I/O:
输入/输出。
计算机程序与其它部分的通讯方式,比如向用户展示数据、从用户那里获取信息、读写文件、通过网络发送和获取数据。
85迭代器(iterator):
与 list 或 set 这样的集合相关联的对象。可用来对该集合进行遍历。
迭代器会轮流访问集合中的每个元素。
86Java集合框架(Java Collection Framework JCF):
一组实现了泛型数据结构的标准类。包括 ArrayList、TreeSet 等。
87JavaFX:
新的应用程序GUI工具集。
在Java 8中推荐使用。
JavaFX不在本书的讨论范围。
88JDK:
Java开发工具集。
支持编译、运行Java程序的基本软件。
JDK包含命令行编程环境以及JRE。
要编译Java源代码或执行预编译程序时,需要使用JDK。
89JRE(Java Runtime Environment):
Java运行时环境。
支持运行已编译的标准Java程序。
JRE包括一个Java虚拟机和所有标准的Java类。
90即时编译器(just-in-time compiler):
一种解释器和编译器的结合,在解释程序某部分的同时可对其进行编译。
接下来对该部分程序执行时比首次运行更快速。
这样可以大大提高执行速度。现代JVM都使用了即时编译器。
91JVM:
Java虚拟机。
将Java字节码作为机器语言执行的虚拟计算机。
也用来称呼解析字节码程序的计算机程序。
要在计算机上运行Java程序需要使用JVM。
92布局管理器(layout manager):
负责对容器中组件进行布局的对象。
进行的部分操作包括设置大小和位置。
不同类型的布局管理器实现的布局策略各不相同。
93链式数据结构(linked data structure):
一组由之指针相互链接的对象数据。
这些指针存储在对象的实例变量中。
链式数据结构包括链表和二叉树。
94链表(linked list):
一种链式数据结构,节点之间由指针串连形成线性链表。
95监听器(listener):
在GUI编程中,可以向对象注册特定事件的触发通知。
因此可以说,对象在“监听”这些事件。
96文字(literal):
在程序中键入的一组字符序列,表示常量值。
例如,当A在Java程序中出现时,’A'是一个常量字符。
97(内存)位置(location in memory):
计算机内存由一系列位置组成。
这些位置顺序编号,标识特定位置的编号被称为该位置的地址。
98本地变量(local variable):
在方法内部声明的变量,只能在该方法内部使用。
代码块中声明变量的有效性,从声明处开始到该代码块的尾部结束。
99循环(loop):
一种控制结构,重复执行一组指令。
Java提供了3种循环:for 循环、while 循环和 do 循环。
100循环控制变量(loop control variable):
for 循环中的变量,每次执行 for 循环时都会修改循环变量值,通过检查该变量决定是否结束循环。
101机器语言(machine language):
由计算机能够直接执行的指令组成的编程语言。
机器语言中的指令会被编码成二进制数。
每种类型的计算机都有自己的机器语言。
用其它语言编写的程序必须翻译为该计算的机器语言,才能在它上面执行。
102主内存(main memory):
程序和数据可以存储在计算机的主内存中,主内存可以被CPU直接访问。
其它形式的内存,比如磁盘驱动器,虽然也能存储信息,但是唯有主内存可被CPU直接访问。
磁盘分区中的程序和数据只有拷贝到内存中才能被CPU访问。
103map:
一种映射数组。
这种数据结构将一组(Collection)中的某个对象与摸个集合(Set)中的所有对象关联在一起。
在Java中,map 由泛型接口 Map 表示。
104成员变量(member variable):
定义在类中的变量,但不属于任何方法。
成员变量与本地变量不同,后者在某个方法中定义。
105内存(memory):
计算机中的内存用来存储程序和数据。
106方法(method):
子程序的另一种称呼,在面向对象编程中使用。
方法指包含在类或对象中的子程序。
107模块(module):
大型系统中的组件,与系统中其它部分以简单、定义清晰、直接的方式进行交互。
108多任务(multitasking):
一次执行多个编程任务。
要么在多个任务之间快速来回切换,要么同时逐个执行多个任务。
109多重处理(multiprocessing):
进行多任务处理时使用多个处理器。
这样,多个任务可以同时逐个执行。
110互斥(mutual exclusion):
防止两个线程同时访问相同的资源。
在Java中,这种方法应用于多个线程同时访问同步方法或同步语句中的资源。
互斥可以阻止竞态条件,但是可能引发死锁。
111MVC模式(MVC pattern):
模型-视图-控制器模式。
一种用在GUI组件中进行职责划分的策略。
模型代表组件的数据,视图指该模型在屏幕上的展示,控制器负责响应模型变化事件。
在MVC模式中,这些职责由不同的对象负责处理。
112非数值(NaN):
不是一个数值。
Double.NaN表示一种特殊的 double 值,表示未定义或非法值。
113节点(node):
链式数据结构中,某个对象的常用称呼。
114null:
一种特殊的指针值,表示“没有指向任何东西”。
115数值分析(numerical analysis):
使用逼近法研究算法的领域,比如实数以及从逼近计算中得到的错误。
116差一错误(off-by-one error):
一种常见错误,处理时多减或多加了一个元素。
通常是技术错误或者循环时由其它原因过早停止或过度执行造成的。
117对象(object):
计算机程序中带有数据(变量)和行为(方法)的实体。
Java中的对象必须以某个类作为创建模板。对象所属的类决定了对象包含的类和方法。
118对象类型(object type):
这种类型的值是对象而非基础类型。
类和接口都是对象类型。
119OOP(Object-Oriented Programming):
面向对象编程。
一种计算机程序设计和实现的方法。
OOP使用类和对象创建、表示实体及实体间的交互。
120操作系统(operating system):
在计算机中一直运行的基础软件。
没有操作系统的计算机无法工作。
操作系统由linux、Mac OS 和 windows Vista。
121操作符(operator):
类似“+”、“<=”或”++”这样的操作符,可以在表达式中计算一个或多个值。
122(操作符)重载(overloading of operators):
相同操作符可以在不同类型的数据上使用。
比如“+”操作可以同时应用于数字和字符类型。
123(方法名)重载(overloading of method names):
同一个类中定义了几个名称相同的方法,区别在于各个方法的签名不同。
124重写(覆盖)(overriding):
在子类中进行重定义。
子类中,对从父类继承的方法重新定义,新定义的方法就是对原方法进行重写。
125包(package):
在Java中,相关类和子包的有名集合称为包。
例如 java.awt 和 javax.swing。
126并行处理(parallel processing):
同时执行多个任务,可以是多个处理器,也可以由一个处理器在多个任务间返复执行。
127参数(parameter):
调用子程序时,参数用来向子程序提供信息。
在执行子程序代码前,子程序调用语句中的“实参”会分配给子程序定义的“虚参数”。
128参数化类型(parameterized type):
类似 ArrayList 这样,包含了一种或多种类型参数的类型(这里的参数类型是String)。
129解析(parsing):
确定预演中字符串语法结构的过程。
解析字符串用来确定字符串中是否遵循该语言的语法;如果是,那么会确定该字符串是如何根据语法进行创建。
130部分完全数组(partially full array):
数组是用来存储数量各异的元素。
部分完全数组表示为一个带有追踪元素个数计数器的普通数组。
131像素(pixel):
指屏幕或图片中的“图像元素”。
一幅图像由像素的行和列组成。每个像素的色彩都可以单独设置。
132多态(polymorphism):
多态是指调用实例方法的意义取决于调用方法时对象的实际类型。
也就是说,如果变量的类型是 var,那么调用方法的语句。
比如 var.action() 取决于执行时 var 所指向的对象类型,而非 var 变量的类型。
133指针(pointer):
代表计算机内存中某个地址的值,因此可以看做“指向”具有该地址的位置。
在Java中,变量不存有对象;变量只是指向存储该对象的位置。指针也称作“引用”。
134语用学(pragmatics):
描述如何编写好程序的经验法则。
例如样式规则、程序组织指南都是编程语用学的一部分。
135优先级(precedence):
操作符的优先级指,在没有括号的情况下,表达式中多个操作符的作用顺序。
136前置条件(precondition):
在程序的执行过程中,为了让程序正确运行,前置条件必须判定为 true。
子程序的前置条件是指,为了让子程序正确运行必须满足的前置条件。
子程序的前置条件通常是对传入的子程序的实参值进行的限制。
137优先级队列(priority queue):
一种表示元素结合的数据结构,其中每个元素都有自己的“优先级”。
优先级队列具有添加和移除操作。
可以按照任意的顺序添加元素,但移除时总是先移除优先级最低的元素。
(某些版本的优先级队列会先移除优先级最高的元素)
138后置条件(postcondition):
在执行程序的某个节点,该条件的计算结果为 true。
子程序的后置条件在子程序执行结束后必须为 true。
函数的后置条件通常表示为函数的返回值。
139基本类型(primitive type):
Java的8个内建基本数据类型有 double、float、long、int、short、byte、boolean 和 char。
基本类型变量存储了真实的值,而非指向数值的指针。
140线程优先级(priority of a thread):
与线程关联的整数值,可以影响线程的执行顺序。
优先级高的线程比优先级低的线程提前执行。
141生产者/消费者(producer/consumer):
并行编程中的一种经典模式,一个或多个生产者生产的产品被一个或更多的消费者使用。
生产者和消费者设计为可以并行执行。
这里的难点在于,如何安全、高效地从生产者向消费者非配产品。
在Java中,通过阻塞队列实现生产者/消费者模式。
142程序(program):
用某种合适的编程语言编写的一组指令,由计算机执行。
用做动词时,表示创建该指令的动作。
143编程语言(programming language):
用来为计算机编程的一种语言。
编程语言的复杂性,从机器语言到像Java这样的高级语言跨度很大。
144协议(protocol):
在指定上下文中,构成合法通信的一组规范。
协议中规定了合法的消息、传送的时间、期待的恢复类型等。
145伪代码(pseudocode):
非正式算法规范。
与实际编程语言相比,伪代码更加接近英语。
并且,通常无需明确地写出过程的每个细节。
146队列(queue):
由一组元素构成的数据结构。
只能在列表的一头添加数据,在列表的另一头移除数据。
147竞态条件(race condition):
并行编程中可能的错误源。
由于某个线程改变了第二个程序依赖的程序状态(比如变量值),从而引发错误。
148RAM(Random Access Memory):
随机访问内存。
计算机主内存的同义词。
然而,从技术角度看,RAM是指在任意时间内都可以同样访问内存地址。
RAM也意味着可以同时读写数据。
149递归(recursion):
用自身的形式定义自己。
特别地,递归子程序可以直接或通过一系列其它子程序间接调用自己。
递归算法的工作方式,通过将一个复杂问题拆分成更小的子问题。
子问题要么可以直接解决,要么可以“递归”使用相同的算法。
150RGB:
一种颜色系统。
颜色由3个数值定义(在Java中,数值的范围从0到255)。
分别表示颜色中的红色、绿色和蓝色组成。
151引用(reference):
“指针”的另一种称呼。
152函数返回类型(return type of a function):
函数返回值的类型。
153保留字(关键字)(reserved word):
一组字符串序列,看起来和标识符很像。
但是由于在编程语言中有特殊含义,所以不能用作标识符。
例如 class、public 是Java中的保留字。
154资源(resource):
图片、声音、文字或程序中的数据文件都是资源。
Java资源文件与编译好的class文件存储在相同的路径(class path)。
155健壮的程序(robust program):
健壮的程序不仅正确,同时也能合理地处理错误,比如文件不存在或者无法建立网络连接。
156集合(set):
没有重复的一组对象。
在Java中,集合用泛型接口 Set 表示。
157作用域(scope):
表示程序中声明的标识符的有效作用域。
158语义(semantics):
语义是指,语言的语义规则决定了该语言中字符串符号(例如句子或语句)的含义。
159哨兵值(sentinel value):
表示数据序列结束的特殊标记,表明该数据已结束。
160setter方法:
类中的实例方法,用来设置类中的一些属性值。
通常,这些属性只是实例变量值。
按照惯例,setter 方法命名为 setXyz(),其中 xyz 是属性的名字。
161方法签名(signature of a method):
方法名、方法定义中形参的个数以及每个形参的类型。
编译器通过方法签名来识别指定子程序调用语句究竟调用了哪个方法。
162套接字(socket):
网络上两个计算机之间的连接,对其中一端的抽象表示。
套接字表示计算机程序间的一个逻辑连接,而非计算机间的物理连接。
163栈(stack):
一组元素组成的列表数据结构,只能在列表的尾部,也称作“栈顶”。
向栈中添加元素叫“入栈 push”,移除元素称作“出栈 pop”。
栈也指用来实现子程序调用的活动记录。
164标准输入(standard input):
程序读取输入数据的标准源,由 System.in 对象表示。
通常,标准输入来自用户键入的文本,但是标准输出也可以重定向到其它源,比如文件。
165标准输出(standard output):
程序将输出文本写入的标准目标,由 System.out 对象表示。
通常,标准输出会向用户展示,但是也可以“重定向”到其它目标,比如文件。
此外,System.err 对象用来输出错误信息。
166状态机(state machine):
一种计算机模型。
抽象的“机器”可处于有限状态集中的任何一种状态。
机器会根据自身的状态决定行为,根据输入或事件进行状态切换。
GUI程序的基本逻辑可表现为状态机。
167逐步精化法(step-wise refinement):
一种算法开发技术。
开始列出算法步骤大纲,通常用伪代码表示,然后逐步填充细节。
168流(stream):
输入数据源或输出数据目标的抽象表示。
Java为字符和二进制数据输入、输出流提供了4个基础类。
这些类组成了Java I/O API的基础。
169源代码(source code):
用高级编程语言编写的文本。
在计算机执行前,必须翻译成机器语言,比如Java字节码。
170子类(subclass):
一个类,直接或间接继承了其它类,从而继承了它的数据和行为。
前一个类就叫做第二类的子类。
171子程序(subroutine):
一系列程序指令。
通过子程序名可以“调用”该子程序。
在面向对象编程中,子程序也称作方法。
172子程序调用语句(subroutine call statement):
程序中调用子程序的语句。
当执行子程序调用语句时,计算机会执行子程序内部的代码。
173super:
一个特殊变量,在实例方法中自动定义。
super指包含该方法的对象,归属于方法所在类的父类。
super可以访问父类中被隐藏的成员变量,这些变量与子类中的成员变量同名。
174语法(syntax):
定义了该语言中哪些字符串符号符合该语言的语法规则。
175TCP/IP:
Internet上用来网络通讯的协议。
176this:
一个特殊变量,在实例方法中自动定义,归属于方法所在的类。
177线程(thread):
对一系列逐条执行语句的抽象表示。
计算机可以并行执行多个线程。
178线程池(thread pool):
执行任务时可以使用的一组“工作线程”。
当任务就绪时,可分配给池中的线程。线程池通常使用阻塞式队列存储任务。
179自顶向下设计(top-down design):
一种软件设计方法。
开始把问题作为一个整体,然后拆分成更小的问题,再逐步细化,直到子问题可以直接解决。
180类型(type):
数值的特定类型。
例如,int类型规定了整形值可以表示为32比特二进制数。
在Java中,类型可以是基本类型、类名或接口名。
类型名可用来定义变量的类型,子程序中的虚拟参数和子程序的返回类型。
181类型转换(type cast):
把一种类型的值强制转换为另一种类型。
例如,在 (int)(6*Math.random()) 中,(int) 是一个类型转换操作,将 (6*Math.random()) 的浮点值转换为了整形,丢弃了实数中的小数部分。
182Unicode:
将字符编码成二进制数的一种方式。
Unicode字符集包含了许多语言的字符,不仅限于英语。Java内部使用的就是Unicode字符集。
183URL:
全球资源定位器。
Internet上资源的地址,比如网页。
184变量(variable):
一个带名字的内存位置(或一系列位置),用来存储数据。
在程序中创建变量,通过变量声明语句将名字赋予该变量。
根据使用情况,这个名字在程序中可以代指该内存位置,或者向内存地址中存储数据。
在Java中,变量具有类型,可以表示变量持有数据的种类。
185包装类(wrapper class):
类似 Double、Integer这样的类,将一个基本类型的值“包装”在对象中,该对象归属于包装类。
这样,在需要使用对象的地方也可以使用基本类型值,比如Java集合框架。
186XML(eXtensible Markup Language):
可扩展标记语言。
一种非常常见且语法标准、支持良好的语言。
用来创建基于文本的数据表示。