Appendix A
Appendix A
glossary
Interfaces are inherently abstract. algorithms.
abstract class—See abstract. alias—A reference to an object that is currently
abstract data type (ADT)—A collection of data also referred to by another reference. Each ref-
and the operations that are defined on that erence is an alias of the other.
data. An abstract data type might be imple- analog—A representation that is in direct pro-
mented in a variety of ways, but the interface portion to the source of the information. See
operations are consistent. also digital.
abstract method—See abstract. animation—A series of images or drawings that
Abstract Windowing Toolkit (AWT)—The give the appearance of movement when dis-
package in the Java API (java.awt) that con- played in order at a particular speed.
tains classes related to graphics and graphical API—See Application Programming Interface.
user interfaces. See also Swing.
applet—A Java program that is linked into an
abstraction—The concept of hiding details. If HTML document, then retrieved and executed
the right details are hidden at the right times, using a Web browser, as opposed to a stand-
abstraction can significantly help control com- alone Java application.
plexity and focus attention on appropriate
appletviewer—A software tool that interprets
issues.
and displays Java applets through links in
access—The ability to reference a variable or HTML documents. Part of the Java
invoke a method from outside the class in Development Kit.
which it is declared. Controlled by the visibility
application—(1) A generic term for any pro-
modifier used to declare the variable or
gram. (2) A Java program that can be run with-
method. Also called the level of encapsulation.
out the use of a Web browser, as opposed to a
See also visibility modifier.
Java applet.
access modifier—See visibility modifier.
Application Programming Interface (API)—A
actual parameter—The value passed to a set of classes that defines services for a pro-
method as a parameter. See also formal param- grammer. Not part of the language itself, but
eter. often relied on to perform even basic tasks. See
adaptor class—See listener adaptor class. also class library.
address—(1) A numeric value that uniquely arc angle—When defining an arc, the radial dis-
identifies a particular memory location in a tance that defines the arc’s length. See also start
computer’s main memory. (2) A designation angle.
that uniquely identifies a computer among all architectural design—A high-level design that
others on a network. identifies the large portions of a software sys-
ADT—See abstract data type. tem and key data structures. See also detailed
aggregate object—An object that contains vari- design.
ables that are references to other objects. See architecture—See computer architecture.
also has-a relationship.
662 APPENDIX A glossary
architecture neutral—Not specific to any particular base—The numerical value on which a particular
hardware platform. Java code is considered architec- number system is based. It determines the number of
ture neutral because it is compiled into bytecode and digits available in that number system and the place
then interpreted on any machine with a Java inter- value of each digit in a number. See also binary, deci-
preter. mal, hexadecimal, octal, place value.
arithmetic operator—An operator that performs a base 2—See binary.
basic arithmetic computation, such as addition or mul- base 8—See octal.
tiplication.
base 10—See decimal.
arithmetic promotion—The act of promoting the type
base 16—See hexadecimal.
of a numeric operand to be consistent with the other
operand. base case—The situation that terminates recursive
processing, allowing the active recursive methods to
array—A programming language construct used to
begin returning to their point of invocation.
store an ordered list of primitive values or objects.
Each element in the array is referenced using a numer- base class—See superclass.
ical index from 0 to N–1, where N is the size of the behavior—The functional characteristics of an object,
array. defined by its methods. See also identity, state.
array element—A value or object that is stored in an binary—The base-2 number system. Modern com-
array. puter systems store information as strings of binary
array element type—The type of the values or objects digits (bits).
that are stored in an array. binary operator—An operator that uses two operands.
ASCII—A popular character set used by many pro- binary search—A searching algorithm that requires
gramming languages. ASCII stands for American that the list be sorted. It repetitively compares the
Standard Code for Information Interchange. It is a “middle” element of the list to the target value, nar-
subset of the Unicode character set, which is used by rowing the scope of the search each time. See also lin-
Java. ear search.
assembly language—A low-level language that uses binary string—A series of binary digits (bits).
mnemonics to represent program commands. binary tree—A tree data structure in which each node
assignment conversion—Some data types can be con- can have no more than two child nodes.
verted to another in an assignment statement. See binding—The process of associating an identifier with
widening conversion. the construct that it represents. For example, the
assignment operator—An operator that results in an process of binding a method name to the specific defi-
assignment to a variable. The = operator performs nition that it invokes.
basic assignment. Many other assignment operators bit—A binary digit, either 0 or 1.
perform additional operations prior to the assignment,
bit shifting—The act of shifting the bits of a data value
such as the *= operator.
to the left or right, losing bits on one end and insert-
association—A relationship between two classes in ing bits on the other.
which one uses the other or relates to it in some way.
bits per second (bps)—A measurement rate for data
See also operator association, use relationship.
transfer devices.
AWT—See Abstract Windowing Toolkit.
bitwise operator—An operator that manipulates indi-
background color—(1) The color of the background vidual bits of a value, either by calculation or by
of a graphical user interface component. (2) The color shifting.
of the background of an HTML page. See also fore-
ground color.
APPENDIX A glossary 663
CD-Rewritable (CD-RW)—A compact disc on which class hierarchy—A tree-like structure created when
information can be stored and rewritten multiple times classes are derived from other classes through inher-
using a home computer with an appropriate drive. See itance. See also interface hierarchy.
also CD-Recordable, CD-ROM. class library—A set of classes that define useful ser-
CD-ROM—An optical secondary memory medium vices for a programmer. See also Application Pro-
that stores binary information in a manner similar to gramming Interface.
a musical compact disc. class method—A method that can be invoked using
central processing unit (CPU)—The hardware compo- only the class name. An instantiated object is not
nent that controls the main activity of a computer, required as it is with instance methods. Defined in a
including the flow of information and the execution of Java program by using the static reserved word.
commands. CLASSPATH—An operating system setting that deter-
char—A Java reserved word that represents the primi- mines where the Java interpreter searches for class
tive character type. All Java characters are members of files.
the Unicode character set and are stored using 16 bits. class variable—A variable that is shared among all
character font—A specification that defines the dis- objects of a class. It can also be referenced through the
tinct look of a character when it is printed or drawn. class name, without instantiating any object of that
character set—An ordered list of characters, such as class. Defined in a Java program by using the static
the ASCII or Unicode character sets. Each character reserved word.
corresponds to a specific, unique numeric value within client-server model—A manner in which to construct
a given character set. A programming language adopts a software design based on objects (clients) making use
a particular character set to use for character repre- of the services provided by other objects (servers).
sentation and management. coding guidelines—A series of conventions that
character stream—An I/O stream that manages 16-bit describe how programs should be constructed. They
Unicode characters. See also byte stream. make programs easier to read, exchange, and inte-
character string—A series of ordered characters. grate. Sometimes referred to as coding standards, espe-
Represented in Java using the String class and string cially when they are enforced.
literals such as “hello”. coding standard—See coding guidelines.
check box—A graphical user interface component that cohesion—The strength of the relationship among the
allows the user to set a boolean condition with a parts within a software component. See also coupling.
mouse click. A check box can be used alone or inde- collision—The process of two hash values producing
pendently among other check boxes. See also radio the same hash code. See also hash code, hashing.
button.
color chooser—A graphical user interface component,
checked exception—A Java exception that must be often displayed as a dialog box, that allows the user to
either caught or explicitly thrown to the calling select or specify a color.
method. See also unchecked exception.
combo box—A graphical user interface component
child class—See subclass. that allows the user to select one of several options. A
class—(1) A Java reserved word used to define a class. combo box displays the most recent selection. See also
(2) The blueprint of an object—the model that defines list.
the variables and methods an object will contain when command-line arguments—The values that follow the
instantiated. program name on the command line. Accessed within
class diagram—A diagram that shows the relation- a Java program through the String array parameter
ships between classes, including inheritance and use to the main method.
relationships. See also Unified Modeling Language.
APPENDIX A glossary 665
else—A Java reserved word that designates the por- expression—A combination of operators and oper-
tion of code in an if statement that will be executed ands that produce a result.
if the condition is false. extends—A Java reserved word used to specify the
enable—Make a graphical user interface component parent class in the definition of a child class.
active so that it can be used. See also disable. event—(1) A user action, such as a mouse click or key
encapsulation—The characteristic of an object that press. (2) An object that represents a user action, to
limits access to the variables and methods contained in which the program can respond. See also event-driven
it. All interaction with an object occurs through a programming.
well-defined interface that supports a modular design. event-driven programming—An approach to software
equality operator—One of two Java operators that development in which the program is designed to
returns a boolean result based on whether two values acknowledge that an event has occurred and to act
are equal (==) or not equal (!=). accordingly. See also event.
equivalence category—A range of functionally equiva- false—A Java reserved word that serves as one of the
lent input values as specified by the requirements of two boolean literals (true and false).
the software component. Used when developing fetch-decode-execute—The cycle through which the
black-box test cases. CPU continually obtains instructions from main mem-
error—(1) Any defect in a design or program. (2) An ory and executes them.
object that can be thrown and processed by special FIFO—See first-in, first-out.
catch blocks, though usually errors should not be
file—A named collection of data stored on a second-
caught. See also compile-time error, exception, logical
ary storage device such as a disk. See also text file.
error, run-time error, syntax error.
file chooser—A graphical user interface component,
escape sequence—In Java, a sequence of characters
usually displayed as a dialog box, that allows the user
beginning with the backslash character (\), used to
to select a file from a storage device.
indicate a special situation when printing values. For
example, the escape sequence \t specifies that a hori- file server—A computer in a network, usually with a
zontal tab should be printed. large secondary storage capacity, that is dedicated to
storing software needed by many network users.
exception—(1) A situation that arises during program
execution that is erroneous or out of the ordinary. (2) filtering stream—See processing stream.
An object that can be thrown and processed by special final—A Java reserved word that serves as a modifier
catch blocks. See also error. for classes, methods, and variables. A final class can-
exception handler—The code in a catch clause of a not be used to derive a new class. A final method
try statement, executed when a particular type of cannot be overridden. A final variable is a constant.
exception is thrown. finalize—A Java method defined in the Object class
exception propagation—The process that occurs when that can be overridden in any other class. It is called
an exception is thrown: control returns to each calling after the object becomes a candidate for garbage col-
method in the stack trace until the exception is caught lection and before it is destroyed. It can be used to per-
and handled or until the exception is thrown from the form “clean-up” activity that is not performed auto-
main method, terminating the program. matically by the garbage collector.
exponent—The portion of a floating point value’s finalizer method—A Java method, called finalize,
internal representation that specifies how far the deci- that is called before an object is destroyed. See also
mal point is shifted. See also mantissa. finalize.
668 APPENDIX A glossary
finally—A Java reserved word that designates a block goto—(1) A Java reserved word that is not currently
of code to be executed when an exception is thrown, used. (2) An unconditional branch.
after any appropriate catch handler is processed. grammar—A representation of language syntax that
first-in, first-out (FIFO)—A data management tech- specifies how reserved words, symbols, and identifiers
nique in which the first value that is stored in a data can be combined into valid programs.
structure is the first value that comes out. See also last- graph—A non-linear data structure made up of nodes
in, first-out; queue. and edges that connect the nodes. See also digraph.
float—A Java reserved word that represents a primi- graphical user interface (GUI)—Software that pro-
tive floating point numeric type, stored using 32 bits in vides the means to interact with a program or operat-
IEEE 754 format. ing system by making use of graphical images and
flushing—The process of forcing the contents of the point-and-click mechanisms such as buttons and text
output buffer to be displayed on the output device. fields.
font—See character font. graphics context—The drawing surface and related
for—A Java reserved word that represents a repetition coordinate system on which a drawing is rendered or
construct. A for statement is executed zero or more graphical user interface components are placed.
times and is usually used when a precise number of GUI component—A visual element, such as a button
iterations is known. or text field, that is used to make up a graphical user
foreground color—The color in which any current interface (GUI).
drawing will be rendered. See also background color. hardware—The tangible components of a computer
formal parameter—An identifier that serves as a system, such as the keyboard, monitor, and circuit
parameter name in a method. It receives its initial boards.
value from the actual parameter passed to it. See also has-a relationship—The relationship between two
actual parameter. objects in which one is composed, at least in part, of
fourth-generation language—A high-level language one or more of the other. See also aggregate object, is-
that provides built-in functionality such as automatic a relationship.
report generation or database management, beyond hash code—An integer value calculated from any
that of traditional high-level languages. given data value or object, used to determine where a
function—A named group of declarations and pro- value should be stored in a hash table. Also called a
gramming statements that can be invoked (executed) hash value. See also hashing.
when needed. A function that is part of a class is called hash method—A method that calculates a hash code
a method. Java has no functions because all code is from a data value or object. The same data value or
part of a class. object will always produce the same hash code. Also
garbage—(1) An unspecified or uninitialized value in a called a hash function. See also hashing.
memory location. (2) An object that cannot be hash table—A data structure in which values are
accessed anymore because all references to it have stored for efficient retrieval. See also hashing.
been lost. hashing—A technique for storing items so that they
garbage collection—The process of reclaiming can be found efficiently. Items are stored in a hash
unneeded, dynamically allocated memory. Java per- table at a position specified by a calculated hash code.
forms automatic garbage collection of objects that no See also hash method.
longer have any valid references to them. hexadecimal—The base-16 number system, often used
gigabyte (GB)—A unit of binary storage, equal to 230 as an abbreviated representation of binary strings.
(approximately 1 billion) bytes.
APPENDIX A glossary 669
input/output devices—Hardware components that interpreter—A program that translates and executes
allow the human user to interact with the computer, code on a particular machine. The Java interpreter
such as a keyboard, mouse, and monitor. translates and executes Java bytecode. See also com-
input/output stream—A sequence of bytes that repre- piler.
sents a source of data (input stream) or a destination Internet—The most pervasive wide-area network
for data (output stream). in the world; it has become the primary vehicle for
insertion sort—A sorting algorithm in which each computer-to-computer communication.
value, one at a time, is inserted into a sorted subset of Internet address—A designation that uniquely iden-
the entire list. See also selection sort. tifies a particular computer or device on the Internet.
inspection—See walkthrough. Internet Naming Authority—The governing body that
instance—An object created from a class. Multiple approves all Internet addresses.
objects can be instantiated from a single class. invisible component—A graphical user interface com-
instance method—A method that must be invoked ponent that can be added to a container to provide
through a particular instance of a class, as opposed to buffering space between other components.
a class method. invocation—See method invocation.
instance variable—A variable that must be referenced I/O devices—See input/output devices.
through a particular instance of a class, as opposed to IP address—A series of several integer values, sepa-
a class variable. rated by periods (.), that uniquely identifies a partic-
instanceof—A Java reserved word that is also an oper- ular computer or device on the Internet. Each Internet
ator, used to determine the class or type of a variable. address has a corresponding IP address.
instantiation—The act of creating an object from a is-a relationship—The relationship created through
class. properly derived classes via inheritance. The subclass
int—A Java reserved word that represents a primitive is-a more specific version of the superclass. See also
integer type, stored using 32 bits in two’s complement has-a relationship.
format. ISO-Latin-1—A 128-character extension to the ASCII
integration test—The process of testing software character set defined by the International Standards
components that are made up of other interacting Organization (ISO). The characters correspond to the
components. Stresses the communication between numeric values 128 through 255 in both ASCII and
components rather than the functionality of individ- Unicode.
ual components. iteration—(1) One execution of the body of a repeti-
interface—(1) A Java reserved word that is used to tion statement. (2) One pass through a cyclic process,
define a set of abstract methods that will be imple- such as an iterative development process.
mented by particular classes. (2) The set of messages iteration statement—See repetition statement.
to which an object responds, defined by the methods iterative development process—A step-by-step approach
that can be invoked from outside of the object. (3) The for creating software, which contains a series of stages
techniques through which a human user interacts with that are performed repetitively.
a program, often graphically. See also graphical user
Java Virtual Machine (JVM)—The conceptual device,
interface.
implemented in software, on which Java bytecode is
interface hierarchy—A tree-like structure created executed. Bytecode, which is architecture neutral, does
when interfaces are derived from other interfaces not run on a particular hardware platform; instead, it
through inheritance. See also class hierarchy. runs on the JVM.
APPENDIX A glossary 671
java—The Java command-line interpreter, which last-in, first-out (LIFO)—A data management tech-
translates and executes Java bytecode. Part of the Java nique in which the last value that is stored in a data
Development Kit. structure is the first value that comes out. See also
Java—The programming language used throughout first-in, first-out; stack.
this text to demonstrate software development con- layout manager—An object that specifies the presen-
cepts. Described by its developers as object oriented, tation of graphical user interface components. Each
robust, secure, architecture neutral, portable, high- container is governed by a particular layout manager.
performance, interpreted, threaded, and dynamic. lexicographic ordering—The ordering of characters
Java API—See Application Programming Interface. and strings based on a particular character set such as
Java Development Kit (JDK)—A collection of soft- Unicode.
ware tools available free from Sun Microsystems, the life cycle—The stages through which a software prod-
creators of the Java programming language. See also uct is developed and used.
Software Development Kit. LIFO—See last-in, first-out.
javac—The Java command-line compiler, which trans- linear search—A search algorithm in which each item
lates Java source code into Java bytecode. Part of the in the list is compared to the target value until the tar-
Java Development Kit. get is found or the list is exhausted. See also binary
javadoc—A software tool that creates external docu- search.
mentation in HTML format about the contents and link—(1) A designation in a hypertext document that
structure of a Java software system. Part of the Java “jumps” to a new document (or to a new part of the
Development Kit. same document) when followed. (2) A connection
javah—A software tool that generates C header and between two items in a dynamically linked structure,
source files, used for implementing native methods. represented as an object reference.
Part of the Java Development Kit. linked list—A dynamic data structure in which objects
javap—A software tool that disassembles a Java class are linked using references.
file, containing unreadable bytecode, into a human- list—A graphical user interface component that pres-
readable version. Part of the Java Development Kit. ents a list of items from which the user can choose.
jdb—The Java command-line debugger. Part of the The current selection is highlighted in the list. See also
Java Development Kit. combo box.
JDK—See Java Development Kit. listener—An object that is set up to respond to an
JVM—See Java Virtual Machine. event when it occurs.
kilobit (Kb)—A unit of binary storage, equal to 210, or listener adaptor class—A class defined with empty
1024 bits. methods corresponding to the methods invoked when
particular events occur. A listener object can be
kilobyte (K or KB)—A unit of binary storage, equal to
derived from an adaptor class. See also listener inter-
210, or 1024 bytes.
face.
label—(1) A graphical user interface component that
listener interface—A Java interface that defines the
displays text, an image, or both. (2) An identifier in
methods invoked when particular events occur. A lis-
Java used to specify a particular line of code. The
tener object can be created by implementing a listener
break and continue statements can jump to a spe-
interface. See also listener adaptor class.
cific, labeled line in the program.
literal—A primitive value used explicitly in a program,
LAN—See local-area network.
such as the numeric literal 147 or the string literal
“hello”.
672 APPENDIX A glossary
local-area network (LAN)—A computer network mantissa—The portion of a floating point value’s
designed to span short distances and connect a rela- internal representation that specifies the magnitude of
tively small number of computers. See also wide-area the number. See also exponent.
network. megabyte (MB)—A unit of binary storage, equal to
local variable—A variable defined within a method, 220 (approximately 1 million) bytes.
which does not exist except during the execution of member—A variable or method in an object or class.
the method.
memory—Hardware devices that store programs and
logical error—A problem stemming from inappro- data. See also main memory, secondary memory.
priate processing in the code. It does not cause an
memory location—An individual, addressable cell
abnormal termination of the program, but it produces
inside main memory into which data can be stored.
incorrect results. See also compile-time error, run-time
error, syntax error. memory management—The process of controlling
dynamically allocated portions of main memory, espe-
logical line of code—A logical programming statement
cially the act of returning allocated memory when it is
in a source code program, which may extend over
no longer required. See also garbage collection.
multiple physical lines. See also physical line of code.
method—A named group of declarations and pro-
logical operator—One of the operators that perform
gramming statements that can be invoked (executed)
a logical NOT (!), AND (&&), or OR (||), returning a
when needed. A method is part of a class.
boolean result. The logical operators are short-
circuited, meaning that if their left operand is suffi- method call conversion—The automatic widening
cient to determine the result, the right operand is not conversion that can occur when a value of one type is
evaluated. passed to a formal parameter of another type.
long—A Java reserved word that represents a primi- method definition—The specification of the code that
tive integer type, stored using 64 bits in two’s com- gets executed when the method is invoked. The defini-
plement format. tion includes declarations of local variables and formal
parameters.
loop—See repetition statement.
method invocation—A line of code that causes a
loop control variable—A variable whose value spe-
method to be executed. It specifies any values that are
cifically determines how many times a loop body is
passed to the method as parameters.
executed.
method overloading—See overloading.
low-level language—Either machine language or
assembly language, which are not as convenient to mnemonic—(1) A word or identifier that specifies a
construct software in as high-level languages are. command or data value in an assembly language. (2)
A keyboard character used as a alternative means to
machine language—The native language of a partic-
activate a graphical user interface component such as
ular CPU. Any software that runs on a particular CPU
a button.
must be translated into its machine language.
modal—Having multiple modes (such as a dialog
main memory—The volatile hardware storage device
box).
where programs and data are held when they are
actively needed by the CPU. See also secondary mem- modem—A data transfer device that allows informa-
ory. tion to be sent along a telephone line.
maintenance—(1) The process of fixing errors in or modifier—A designation used in a Java declaration
making enhancements to a released software product. that specifies particular characteristics to the construct
(2) The software life-cycle phase in which the software being declared.
is in use and changes are made to it as needed.
APPENDIX A glossary 673
monitor—The screen in the computer system that resentation that can be displayed on a monitor or
serves as an output device. printed by a printer. See also printable characters.
multidimensional array—An array that uses more nonvolatile—The characteristic of a memory device
than one index to specify a value stored in it. that retains its stored information even after the
multiple inheritance—Deriving a class from more than power supply is turned off. Secondary memory devices
one parent, inheriting methods and variables from are nonvolatile. See also volatile.
each. Multiple inheritance is not supported in Java. null—A Java reserved word that is a reference literal,
multiplicity—The numeric relationship between two used to indicate that a reference does not currently
objects, often shown in class diagrams. refer to any object.
NaN—An abbreviation that stands for “not a num- number system—A set of values and operations
ber,” which is the designation for an inappropriate or defined by a particular base value that determines the
undefined numeric value. number of digits available and the place value of each
digit.
narrowing conversion—A conversion between two
values of different but compatible data types. Nar- object—(1) The primary software construct in the
rowing conversions could lose information because object-oriented paradigm. (2) An encapsulated col-
the converted type usually has an internal represen- lection of data variables and methods. (3) An instance
tation smaller than the original storage space. See also of a class.
widening conversion. object diagram—A visual representation of the objects
native—A Java reserved word that serves as a modifier in a program at a given point in time, often showing
for methods. A native method is implemented in the status of instance data.
another programming language. object-oriented programming—An approach to soft-
natural language—A language that humans use to ware design and implementation that is centered
communicate, such as English or French. around objects and classes. See also procedural pro-
gramming.
negative infinity—A special floating point value that
represents the “lowest possible” value. See also posi- octal—The base-8 number system, sometimes used to
tive infinity. abbreviate binary strings. See also binary, hexadeci-
mal.
nested class—A class declared within another class in
order to facilitate implementation and restrict access. off-by-one error—An error caused by a calculation or
condition being off by one, such as when a loop is set
nested if statement—An if statement that has as its
up to access one too many array elements.
body another if statement.
operand—A value on which an operator performs its
Netscape Navigator—A popular World Wide Web
function. For example, in the expression 5 + 2, the val-
browser.
ues 5 and 2 are operands.
network—Two or more computers connected together
operating system—The collection of programs that
so that they can exchange data and share resources.
provide the primary user interface to a computer and
network address—See address. manage its resources, such as memory and the CPU.
new—A Java reserved word that is also an operator, operator—A symbol that represents a particular oper-
used to instantiate an object from a class. ation in a programming language, such as the addition
newline character—A nonprintable character that operator (+).
indicates the end of a line. operator association—The order in which operators
nonprintable characters—Any character, such as within the same precedence level are evaluated, either
escape or newline, that does not have a symbolic rep-
674 APPENDIX A glossary
right to left or left to right. See also operator prece- any change made to the value inside the method is not
dence. reflected in the original value. All Java primitive types
operator overloading—Assigning additional meaning are passed by value.
to an operator. Operator overloading is not supported PDL—See Program Design Language.
in Java, though method overloading is. peripheral—Any hardware device other than the CPU
operator precedence—The order in which operators or main memory.
are evaluated in an expression as specified by a well- persistence—The ability of an object to stay in exist-
defined hierarchy. ence after the executing program that creates it ter-
order—The dominant term in an equation that spec- minates. See also serialize.
ifies the efficiency of an algorithm. For example, selec- physical line of code—A line in a source code file, ter-
tion sort is of order n2. minated by a newline or similar character. See also log-
overflow—A problem that occurs when a data value ical line of code.
grows too large for its storage size, which can result in pixel—A picture element. A digitized picture is made
inaccurate arithmetic processing. See also underflow. up of many pixels.
overloading—Assigning additional meaning to a pro- place value—The value of each digit position in a
gramming language construct, such as a method or number, which determines the overall contribution of
operator. Method overloading is supported by Java that digit to the value. See also number system.
but operator overloading is not.
pointer—A variable that can hold a memory address.
overriding—The process of modifying the definition of Instead of pointers, Java uses references, which pro-
an inherited method to suit the purposes of the sub- vide essentially the same functionality as pointers but
class. See also shadowing variables. without the complications.
package—A Java reserved word that is used to specify point-to-point connection—The link between two net-
a group of related classes. worked devices that are connected directly by a wire.
package visibility—See default visibility. polyline—A shape made up of a series of connected
panel—A graphical user interface (GUI) container that line segments. A polyline is similar to a polygon, but
holds and organizes other GUI components. the shape is not closed.
parameter—(1) A value passed from a method invo- polymorphism—An object-oriented technique by
cation to its definition. (2) The identifier in a method which a reference that is used to invoke a method can
definition that accepts the value passed to it when the result in different methods being invoked at different
method is invoked. See also actual parameter, formal times. All Java method invocations are potentially
parameter. polymorphic in that they invoke the method of the
parameter list—The list of actual or formal parameters object type, not the reference type.
to a method. portability—The ability of a program to be moved
parent class—See superclass. from one hardware platform to another without hav-
ing to change it. Because Java bytecode is not related
pass by reference—The process of passing a reference
to any particular hardware environment, Java pro-
to a value into a method as the parameter. In Java, all
grams are considered portable. See also architecture
objects are managed using references, so an object’s
neutral.
formal parameter is an alias to the original. See also
pass by value. positive infinity—A special floating point value that
represents the “highest possible” value. See also nega-
pass by value—The process of making a copy of a
tive infinity.
value and passing the copy into a method. Therefore
APPENDIX A glossary 675
random access device—A memory device whose infor- dition false. Also called an iteration statement or loop.
mation can be directly accessed. See also random See also do, for, while.
access memory, sequential access device. requirements—(1) The specification of what a pro-
random access memory (RAM)—A term basically gram must and must not do. (2) An early phase of the
interchangeable with main memory. Should probably software development process in which the program
be called read-write memory, to distinguish it from requirements are established.
read-only memory. reserved word—A word that has special meaning in a
random number generator—Software that produces a programming language and cannot be used for any
pseudo–random number, generated by calculations other purpose.
based on a seed value. retirement—The phase of a program’s life cycle in
read-only memory (ROM)—Any memory device which the program is taken out of active use.
whose stored information is stored permanently when return—A Java reserved word that causes the flow of
the device is created. It can be read from, but not writ- program execution to return from a method to the
ten to. point of invocation.
recursion—The process of a method invoking itself, return type—The type of value returned from a
either directly or indirectly. Recursive algorithms method, specified before the method name in the
sometimes provide elegant, though perhaps inefficient, method declaration. Could be void, which indicates
solutions to a problem. that no value is returned.
reference—A variable that holds the address of an reuse—Using existing software components to create
object. In Java, a reference can be used to interact with new ones.
an object, but its address cannot be accessed, set, or
review—The process of critically examining a design
operated on directly.
or program to discover errors. There are many types
refinement—One iteration of a evolutionary develop- of reviews. See also desk check, walkthrough.
ment cycle in which a particular aspect of the system,
RGB value—A collection of three values that define a
such as the user interface or a particular algorithm, is
color. Each value represents the contribution of the
addressed.
primary colors red, green, and blue.
refinement scope—The specific issues that are
ROM—See read-only memory.
addressed in a particular refinement during evolution-
ary software development. run-time error—A problem that occurs during pro-
gram execution that causes the program to terminate
register—A small area of storage in the CPU of the
abnormally. See also compile-time error, logical error,
computer.
syntax error.
relational operator—One of several operators that
scope—The areas within a program in which an iden-
determine the ordering relationship between two val-
tifier, such as a variable, can be referenced. See also
ues: less than (<), less than or equal to (<=), greater
access.
than (>), and greater than or equal to (>=). See also
equality operator. scroll pane—A graphical user interface container that
offers a limited view of a component and provides
release—A version of a software product that is made
horizontal and/or vertical scrollbars to change that
available to the customer.
view.
repetition statement—A programming construct that
SDK—See Software Development Kit.
allows a set of statements to be executed repetitively as
long as a particular condition is true. The body of the searching—The process of determining the existence
repetition statement should eventually make the con- or location of a target value within a list of values. See
also binary search, linear search.
APPENDIX A glossary 677
secondary memory—Hardware storage devices, such software—(1) Programs and data. (2) The intangible
as magnetic disks or tapes, which store information in components of a computer system.
a relatively permanent manner. See also main memory. software component—See component.
seed value—A value used by a random number gen- Software Development Kit (SDK)—A collection of
erator as a base for the calculations that produce a software tools that assist in the development of soft-
pseudo-random number. ware. The Java Software Development Kit is another
selection sort—A sorting algorithm in which each name for the Java Development Kit.
value, one at a time, is placed in its final, sorted posi- software engineering—The discipline within computer
tion. See also insertion sort. science that addresses the process of developing high-
selection statement—A programming construct that quality software within practical constraints.
allows a set of statements to be executed if a particu- sorting—The process of putting a list of values into a
lar condition is true. See also if, switch. well-defined order. See also insertion sort, selection
semantics—The interpretation of a program or pro- sort.
gramming construct. split pane—A graphical user interface container that
sentinel value—A specific value used to indicate a spe- displays two components, either side by side or one on
cial condition, such as the end of input. top of the other, separated by a moveable divider bar.
serialize—The process of converting an object into a stack—An abstract data type that manages data in a
linear series of bytes so it can be saved to a file or sent last-in, first-out manner.
across a network. See also persistence. stack trace—The series of methods called to reach a
service methods—Methods in an object that are certain point in a program. The stack trace can be
declared with public visibility and define a service that analyzed when an exception is thrown to assist the
the object’s client can invoke. programmer in tracking down the problem.
shadowing variables—The process of defining a vari- standard I/O stream—One of three common I/O
able in a subclass that supersedes an inherited version. streams representing standard input (usually the key-
short—A Java reserved word that represents a prim- board), standard output (usually the monitor screen),
itive integer type, stored using 16 bits in two’s com- and standard error (also usually the monitor). See also
plement format. stream.
sibling—Two items in a tree or hierarchy, such as a start angle—When defining an arc, the angle at which
class inheritance hierarchy, that have the same parent. the arc begins. See also arc angle.
sign bit—A bit in a numeric value that represents the state—The state of being of an object, defined by the
sign (positive or negative) of that value. values of its data. See also behavior, identity.
signed numeric value—A value that stores a sign (pos- statement—See programming language statement.
itive or negative). All Java numeric values are signed. statement coverage—A strategy used in white-box
A Java character is stored as an unsigned value. testing in which all statements in a program are exe-
signature—The number, types, and order of the cuted. See also condition coverage.
parameters of a method. Overloaded methods must static—A Java reserved word that serves as a modifier
each have a unique signature. for methods and variables. A static method is also
slider—A graphical user interface component that called a class method and can be referenced without
allows the user to specify a numeric value within a an instance of the class. A static variable is also called
bounded range by moving a knob to the appropriate a class variable and is common to all instances of the
place in the range. class.
678 APPENDIX A glossary
static data structure—A data structure that has a fixed swing—The package in the Java API (javax.swing)
size and cannot grow and shrink as needed. See also that contains classes related to graphical user inter-
dynamic data structure. faces. Swing provides alternative components than the
storage capacity—The total number of bytes that can Abstract Windowing Toolkit package, but does not
be stored in a particular memory device. replace it.
stream—A source of input or a destination for output. switch—A Java reserved word that specifies a com-
pound conditional construct.
strictfp—A Java reserved word that is used to control
certain aspects of floating point arithmetic. synchronization—The process of ensuring that data
shared among multiple threads cannot be accessed by
string—See character string.
more than one thread at a time. See also synchronized.
string concatenation—The process of attaching the
synchronized—A Java reserved word that serves as a
beginning of one character string to the end of
modifier for methods. Separate threads of a process
another, resulting in one longer string.
can execute concurrently in a method, unless the
strongly typed language—A programming language in method is synchronized, making it a mutually exclu-
which each variable is associated with a particular sive resource. Methods that access shared data should
data type for the duration of its existence. Variables be synchronized.
are not allowed to take on values or be used in oper-
syntax rules—The set of specifications that govern
ations that are inconsistent with their type.
how the elements of a programming language can be
structured programming—An approach to program put together to form valid statements.
development in which each software component has
syntax error—An error produced by the compiler
one entry and exit point and in which the flow of con-
because a program did not conform to the syntax of
trol does not cross unnecessarily.
the programming language. Syntax errors are a subset
stub—A method that simulates the functionality of a of compile-time errors. See also compile-time error,
particular software component. Often used during logical error, run-time error, syntax rules.
unit testing.
tabbed pane—A graphical user interface (GUI) con-
subclass—A class derived from another class via inher- tainer that presents a set of cards from which the user
itance. Also called a derived class or child class. See can choose. Each card contains its own GUI compo-
also superclass. nents.
subscript—See index. target value—The value that is sought when per-
super—A Java reserved word that is a reference to the forming a search on a collection of data.
parent class of the object making the reference. Often TCP/IP—Software that controls the movement of
used to invoke a parent’s constructor. messages across the Internet. The acronym stands for
super reference—See super. Transmission Control Protocol/Internet Protocol.
superclass—The class from which another class is terabyte (TB)—A unit of binary storage, equal to 240
derived via inheritance. Also called a base class or par- (approximately 1 trillion) bytes.
ent class. See also subclass. termination—The point at which a program stops exe-
support methods—Methods in an object that are not cuting.
intended for use outside the class. They provide sup- ternary operator—An operator that uses three oper-
port functionality for service methods. As such, they ands.
are usually not declared with public visibility.
test case—A set of input values and user actions, along
swapping—The process of exchanging the values of with a specification of the expected output, used to
two variables. find errors in a system.
APPENDIX A glossary 679
testing—(1) The process of running a program with try—A Java reserved word that is used to define the
various test cases in order to discover problems. (2) context in which certain exceptions will be handled if
The process of critically evaluating a design or pro- they are thrown.
gram. two-dimensional array—An array that uses two
text area—A graphical user interface component that indices to specify the location of an element. The two
displays, or allows the user to enter, multiple lines of dimensions are often thought of as the rows and
data. columns of a table. See also multidimensional array.
text field—A graphical user interface component that two’s complement—A technique for representing
displays, or allows the user to enter, a single line of numeric binary data. Used by all Java integer primitive
data. types (byte, short, int, long).
text file—A file that contains data formatted as ASCII type—See data type.
or Unicode characters. UML—See Unified Modeling Language.
this—A Java reserved word that is a reference to the unary operator—An operator that uses only one
object executing the code making the reference. operand.
thread—An independent process executing within a unchecked exception—A Java exception that does not
program. A Java program can have multiple threads need to be caught or dealt with if the programmer so
running in a program at one time. chooses.
throw—A Java reserved word that is used to start an underflow—A problem that occurs when a floating
exception propagation. point value becomes too small for its storage size,
throws—A Java reserved word that specifies that a which can result in inaccurate arithmetic processing.
method may throw a particular type of exception. See also overflow.
timer—An object that generates an event at regular Unicode—The international character set used to
intervals. define valid Java characters. Each character is repre-
token—A portion of a string defined by a set of delim- sented using a 16-bit unsigned numeric value.
iters. Unified Modeling Language (UML)—A graphical
tool tip—A short line of text that appears when the notation for visualizing relationships among classes
mouse pointer is allowed to rest on top of a particular and objects. Abbreviated UML. There are many types
component. Usually, tool tips are used to inform the of UML diagrams. See also class diagrams.
user of the component’s purpose. uniform resource locator (URL)—A designation for a
top-level domain—The last part of a network domain resource that can be located through a World Wide
name, such as edu or com. Web browser.
transient—A Java reserved word that serves as a mod- unit test—The process of testing an individual soft-
ifier for variables. A transient variable does not con- ware component. May require the creation of stub
tribute to the object’s persistent state, and therefore modules to simulate other system components.
does not need to be saved. See also serialize. unsigned numeric value—A value that does not store
tree—A non-linear data structure that forms a hierar- a sign (positive or negative). The bit usually reserved
chy stemming from a single root node. to represent the sign is included in the value, doubling
the magnitude of the number that can be stored. Java
true—A Java reserved word that serves as one of the
characters are stored as unsigned numeric values, but
two boolean literals (true and false).
there are no primitive numeric types that are unsigned.
truth table—A complete enumeration of all permu-
URL—See uniform resource locator.
tations of values involved in a boolean expression, as
well as the computed result.
680 APPENDIX A glossary
use relationship—A relationship between two classes, Web—See World Wide Web.
often shown in a class diagram, that establishes that while—A Java reserved word that represents a repe-
one class uses another in some way, such as relying on tition construct. A while statement is executed zero or
its services. See also association. more times. See also do, for.
user interface—The manner in which the user interacts white-box testing—Producing and evaluating test
with a software system, which is often graphical. See cases based on the interior logic of a software com-
also graphical user interface. ponent. The test cases focus on stressing decision
variable—An identifier in a program that represents a points and ensuring coverage. See also black-box test-
memory location in which a data value is stored. ing, condition coverage, statement coverage.
visibility modifier—A Java modifier that defines the white space—Spaces, tabs, and blank lines that are
scope in which a construct can be accessed. The Java used to set off sections of source code to make pro-
visibility modifiers are public, protected, private, grams more readable.
and default (no modifier used). wide-area network (WAN)—A computer network that
void—A Java reserved word that can be used as a connects two or more local area networks, usually
return value for a method, indicating that no value is across long geographic distances. See also local-area
returned. network.
volatile—(1) A Java reserved word that serves as a widening conversion—A conversion between two val-
modifier for variables. A volatile variable might be ues of different but compatible data types. Widening
changed asynchronously and therefore indicates that conversions usually leave the data value intact because
the compiler should not attempt optimizations on it. the converted type has an internal representation equal
(2) The characteristic of a memory device that loses to or larger than the original storage space. See also
stored information when the power supply is inter- narrowing conversion.
rupted. Main memory is a volatile storage device. See word—A unit of binary storage. The size of a word
also nonvolatile. varies by computer, and is usually two, four, or eight
von Neumann architecture—The computer architec- bytes. The word size indicates the amount of informa-
ture named after John von Neumann, in which tion that can be moved through the machine at one
programs and data are stored together in the same time.
memory devices. World Wide Web (WWW or Web)—Software that
walkthrough—A form of review in which a group of makes the exchange of information across a network
developers, managers, and quality assurance personnel easier by providing a common user interface for mul-
examine a design or program in order to find errors. tiple types of information. Web browsers are used to
Sometimes referred to as an inspection. See also desk retrieve and format HTML documents.
check. wrapper class—A class designed to store a primitive
WAN—See wide-area network. type in an object. Usually used when an object refer-
waterfall model—One of the earliest software devel- ence is needed and a primitive type would not suffice.
opment process models. It defines a basically linear WWW—See World Wide Web.
interaction between the requirements, design, imple-
mentation, and testing stages.