# Glossary of Terms

abstract class
  A class that should never be instantiated; only its subclasses should be instantiated. Abstract classes are defined so that other classes can inherit from them.

actual parameter list
  The arguments specified in a particular method call. See also formal parameter list.

alpha value
  A value that indicates the opacity of a pixel.

API
  Application Programmer Interface. The specification of how a programming writing an application accesses the facilities of some object. Interfaces can be specified in the Java and C++ languages using classes. The Java language also has a special interface syntax that allows interfaces that are more flexible than classes.

applet
  A program written in the Java language to run within HotJava.

argument
  A data item specified in a method call. An argument can be a literal value, a variable, or an expression.

array
  A collection of data items, all of the same type, in which each item's position is uniquely designated by an integer.

ASCII
  American Standard Code for Information Interchange. A standard assignment of 7-bit numeric codes to characters. See also Unicode.

atomic
  Refers to an operation that is never interrupted or left in an incomplete state under any circumstance.

binary operator
  An operator that has two arguments.

bit
  The smallest unit of information in a computer, with a value of either 0 or 1.

bitwise operator
  An operator that manipulates bit-oriented data, such as by performing the logical AND operation such that each bit that's 1 in either operand is 1 in the result.

block
  In the Java language, any code between matching braces ({ and }).

boolean
  Refers to an expression or variable that can have only a true or false value. The Java language provides the boolean type and the literal values true and false.

bounding box
  For a Raster object, the smallest rectangle that completely encloses all the pixels that are not fully transparent.

byte
  A sequence of eight bits. The Java language provides a corresponding byte type.

bytecode
  Machine-independent code generated by the Java compiler and executed by the Java interpreter.

casting
  Explicit conversion from one data type to another.

class
  In the Java language, a type that defines the implementation of a particular kind of object. A class definition defines instance and class variables and methods, as well as specifying the interfaces the class implements and the immediate superclass of the class.

class method
  Any method that can be invoked using the name of a particular class. Class methods affect the class as a whole, not a particular instance of the class. Class methods are defined in class definitions. See also instance method.

class variable
  A data item associated with a particular class as a whole-not with particular instances of the class. Class variables are defined in class definitions. See also instance variable.

comment
  In a program, explanatory text that is ignored by the compiler. In Java programs, comments are delimited using // or /*...*/.

compilation unit
  The smallest unit of Java code that can be compiled. In the current Java implementation, the compilation unit is a file.

compiler
  A program to translate source code into code to be executed by a computer. The Java compiler translates Java source code into Java bytecode. See also interpreter.

compositing
  The process of superimposing one image on another to create a single image.

constructor
  A method that creates an object. In the Java language, constructors are instance methods with the same name as their class. Java constructors are invoked using the new keyword.

critical section
  A segment of code in which a thread uses resources (such as certain instance variables) that can be used by other threads, but that must not be used by them at the same time.

declaration
  A statement that establishes an identifier and associates attributes with it, without necessarily reserving its storage (for data) or providing the implementation (for methods). See also definition.

definition
  A declaration that reserves storage (for data) or provides implementation (for methods).

derived from
  Describes a class that inherits properties of another class. See also subclass, superclass.

distributed
  Running in more than one address space.

double precision
  In the Java language specification, describes a floating point number that holds 64 bits of data. See also single precision.

encapsulation
  The localization of knowledge within a module. Because objects encapsulate data and implementation, the user of an object can view the object as a black box that provides services. Instance variables and methods can be added, deleted, or changed, but as long as the services provided by the object remain the same, code that uses the object can continue to use it without being rewritten.

exception
  An event during program execution that prevents the program from continuing normally; generally, an error. The Java language supports exceptions with the try, catch, and throw keywords. See also exception handler.

exception handler
  A block of code that reacts to a specific type of exception. If the exception is for an error that the program can recover from, the program can resume executing after the exception handler has executed. See also exception.

executable content
  An application that runs from within an HTML file.

FTP
  The basic internet File Transfer Protocol. It enables the fetching and storing of files between hosts on the internet. It is based on TCP/IP.

formal parameter list
  The parameters specified in the definition of a particular method. See also actual parameter list.

garbage collection
  The automatic detection and freeing of memory that is no longer in use. The Java runtime system performs garbage collection so that programmers never explicitly free objects and other data.

GUI
  Graphical User Interface. Refers to the techniques involved in using graphics, along with a keyboard and a mouse, to provide an easy to use interface to some program.

hexadecimal
  The numbering system that uses 16 as its base. The marks 0-9 and a-f (or equivalently A-F) represent the digits 0 through 15. In Java programs, hexadecimal numbers must be preceded with 0x. See also octal.

hierarchy
  A classification of relationships in which each item except the top one (known as the root) is a specialized form of the item above it. Each item can have one or more items below it in the hierarchy. In the Java class hierarchy, the root is the Object class.

HTML
  HyperText Markup Language. This is a file format, based on SGML, for hypertext documents on the internet. It is very simple and allows for the imbedding of images, sounds, video streams, form fields and simple text formatting. References to other objects are imbedded using URLs.

HTTP
  Hypertext Transfer Protocol. This is the internet protocol used to fetch hypertext objects from remote hosts. It is based on TCP/IP.

identifier
  The name of an item in an Java program.

inheritance
  The concept of classes automatically containing the variables and methods defined in their superclasses.

instance
  An object of a particular class. In Java programs, an instance of a class is created using the new operator followed by the class name.

instance method
  Any method that can be invoked using an instance of a class, but not using the class name. Instance methods are defined in class definitions. See also class method.

instance variable
  Any item of data that's associated with a particular object. Each instance of a class has its own copy of the instance variables defined in the class. See also class variable.

interface
  In the Java language, a group of methods that can be implemented by several classes, regardless of where the classes are in the class hierarchy.

Internet
  An enormous network consisting of literally millions of hosts from many organizations and countries around the world. It is physically put together from many smaller networks and is held together by a common set of protocols.

IP
  Internet Protocol. The basic protocol of the internet. It enables the unreliable delivery of individual packets from one host to another. It makes no guarantees about whether or not the packet will be delivered, how long it will take, or if multiple packets will arrive in the order they were sent. Protocols built on top of this add the notions of connection and reliability.

interpreter
  A module that alternately decodes and executes every statement in some body of code. The Java interpreter decodes and executes Java bytecode. See also compiler, runtime system.

JPEG
  Joint Photographic Experts Group. An image file compression standard established by this group. It achieves tremendous compression at the cost of introducing distortions into the image which are almost always imperceptible.

lexical
  Pertaining to how the characters in source code are translated into tokens that the compiler can understand.

linker
  A module that builds an executable, complete program from component machine code modules. The Java linker creates a runnable program from compiled classes. See also compiler, interpreter, runtime system.

literal
  The basic representation of any integer, floating point, or character value. For example, 3.0 is a single-precision floating point literal, and `a' is a character literal.

local variable
  A data item known within a block, but inaccessible to code outside the block. For example, any variable defined within an Java method is a local variable and can't be used outside the method.

method
  A function defined in a class. See also instance method, class method.

Mosaic
  A program that provides a simple GUI that enables easy access to the data stored on the internet. These may be simple files, or hypertext documents. It was written by a team at NCSA. The popularity of this program has caused its name to be frequently used as a generic term to refer to browsers of the world wide web.

multithreaded
  Describes a program that is designed to have parts of its code execute concurrently. See also thread.

NCSA
  National Center for Supercomputer Applications.

object
  The principle building blocks of object-oriented programs. Each object is a programming unit consisting of data (instance variables) and functionality (instance methods). See also class.

object oriented design
  A software design method that models the characteristics of abstract or real objects using classes and objects.

octal
  The numbering system using 8 as its base, using the numerals 0-7 as its digits. In Java programs, octal numbers must be preceded with 0. See also hexadecimal.

overloading
  Using one identifier to refer to multiple items in the same scope. In the Java language, you can overload methods but not variables or operators.

overriding
  Providing a different implementation of a method in a subclass of the class that originally defined the method.

package
  In the Java language, a group of classes. Packages are declared with the package keyword.

pixel
  The smallest addressable picture element on a display screen or printed page.

pointer
  A data element whose value is an address.

process
  A virtual address space containing one or more threads.

raster
  A line of pixels.

RPC
  Remote Procedure Call. Executing what looks like a normal procedure call (or method invocation) by sending network packets to some remote host.
root
  In a hierarchy of items, the one item from which all other items are descended. The root item has nothing above it in the hierarchy. See also hierarchy, class, package.

scope
  A characteristic of an identifier that determines where the identifier can be used. Most identifiers in the Java language have either class or local scope. Instance and class variables and methods have class scope; they can be used outside the class and its subclasses only by prefixing them with an instance of the class or (for class variables and methods) with the class name. All other variables are declared within methods and have local scope; they can be used only within the enclosing block.

single precision
  In the Java language specification, describes a floating point number with 32 bits of data. See also double precision.

SGML
  Standardized, Generalized Markup Language. An ISO/ANSI/ECMA standard that specifies a way to annotate text documents with information about types of sections of a document. For example "this is a paragraph" or "this is a title".
subclass
  A class that is derived from a particular class, perhaps with one or more classes in between. See also superclass.

superclass
  A class from which a particular class is derived, perhaps with one or more classes in between. See also subclass.

thread
  The basic unit of program execution. A process can have several threads running concurrently, each performing a different job, such as waiting for events or performing a time-consuming job that the program doesn't need to complete before going on. When a thread has finished its job, the thread is suspended or destroyed. See also process.

TCP/IP
  Transmission Control Protocol based on IP. This is an internet protocol that provides for the reliable delivery of streams of data from one host to another.

TLA
  Three Letter Acronym.

Unicode
  A 16-bit character set defined by ISO 10646.

URL
  Uniform Resource Locator. A standard for writing a textual reference to an arbitrary piece of data in the WWW. A URL looks like "protocol://host/localinfo" where protocol specifies a protocol to use to fetch the object (like HTTP or FTP), host specifies the internet name of the host on which to find it, and localinfo is a string (often a file name) passed to the protocol handler on the remote host.

variable
  An item of data named by an identifier. Each variable has a type, such as int or Object, and a scope. See also class variable, instance variable, local variable.

WWW
  World Wide Web. The web of systems and the data in them that is the Internet.