UNPKG

epubjs

Version:

Render ePub documents in the browser, across many devices

371 lines 67.5 kB
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head><title>Glossary</title><link rel="stylesheet" href="core.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"/></head><body><div class="glossary" title="Glossary"><div class="titlepage"><div><div><h1 class="title"><a id="learnjava3-GLOSS"/>Glossary</h1></div></div></div><dl><dt><a id="gl_abstract"/>abstract</dt><dd><p>The <a id="I_indexterm_id839659" class="indexterm"/><code class="literal">abstract</code> keyword is used to declare abstract methods and classes. An abstract method has no implementation defined; it is declared with arguments and a return type as usual, but the body enclosed in curly braces is replaced with a semicolon. The implementation of an abstract method is provided by a subclass of the class in which it is defined. If an abstract method appears in a class, the class is also abstract.</p></dd><dt>annotations</dt><dd><p><a id="I_indexterm_id839678" class="indexterm"/>Metadata added to Java source code using the @ tag syntax. Annotations can be used by the compiler or at runtime to augment classes, provide data or mappings, or flag additional services.</p></dd><dt>Ant</dt><dd><p><a id="I_indexterm_id839694" class="indexterm"/>A popular, XML-based build tool for Java applications. Ant builds can compile, package, and deploy Java source code as well as generate documentation and perform other activities through pluggable “targets.”</p></dd><dt>API (Application Programming Interface)</dt><dd><p><a id="I_indexterm_id839712" class="indexterm"/> <a id="I_indexterm_id839719" class="indexterm"/>An API consists of the methods and variables programmers use to work with a component or tool in their applications. The Java language APIs consist of the classes and methods of the <code class="literal">java.lang</code>, <code class="literal">java.util</code>, <code class="literal">java.io</code>, <code class="literal">java.text</code>, and <code class="literal">java.net</code> packages and many others.</p></dd><dt>applet</dt><dd><p><a id="I_indexterm_id839759" class="indexterm"/>An embedded Java application that runs in the context of an applet viewer, such as a web browser.</p></dd><dt>&lt;applet&gt; tag</dt><dd><p><a id="I_indexterm_id839774" class="indexterm"/>An HTML tag that embeds an applet within a web document.</p></dd><dt>appletviewer</dt><dd><p><a id="I_indexterm_id839788" class="indexterm"/>Sun’s application that runs and displays Java applets outside of a web browser.</p></dd><dt>application</dt><dd><p>A Java program that runs standalone, as compared with an applet.</p></dd><dt>apt (Annotation Processing Tool)</dt><dd><p><a id="I_indexterm_id839809" class="indexterm"/> <a id="I_indexterm_id839816" class="indexterm"/>A frontend for the Java compiler that processes annotations via a pluggable factory architecture, allowing users to implement custom compile-time annotations.</p></dd><dt>assertion</dt><dd><p><a id="I_indexterm_id839830" class="indexterm"/>A language feature used to test for conditions that should be guaranteed by program logic. If a condition checked by an assertion is found to be <em class="filename">false</em>, a fatal error is thrown. For added performance, assertions can be disabled when an application is deployed.</p></dd><dt>atomic</dt><dd><p><a id="I_indexterm_id839851" class="indexterm"/>Discrete or transactional in the sense that an operation happens as a unit, in an all-or-nothing fashion. Certain operations in the Java virtual machine (VM) and provided by the Java concurrency API are atomic.</p></dd><dt>AWT (Abstract Window Toolkit)</dt><dd><p><a id="I_indexterm_id839868" class="indexterm"/> <a id="I_indexterm_id839874" class="indexterm"/>Java’s original platform-independent windowing, graphics, and user interface toolkit.</p></dd><dt>BeanShell</dt><dd><p><a id="I_indexterm_id839893" class="indexterm"/>An open source, lightweight, Java-compatible scripting language that can be used for Java experimentation, teaching, application extension, configuration, and debugging.</p></dd><dt>Boojum</dt><dd><p><a id="I_indexterm_id839908" class="indexterm"/>The mystical, spectral, alter ego of a Snark. From the 1876 Lewis Carroll poem “The Hunting of the Snark.”</p></dd><dt>Boolean</dt><dd><p><a id="I_indexterm_id839922" class="indexterm"/>A primitive Java data type that contains a <code class="literal">true</code> or <code class="literal">false</code> value.</p></dd><dt>bounds</dt><dd><p><a id="I_indexterm_id839945" class="indexterm"/>In Java generics, a limitation on the type of a type parameter. An upper bound specifies that a type must extend (or is assignable to) a specific Java class. A lower bound is used to indicate that a type must be a supertype of (or is assignable from) the specified type.</p></dd><dt>boxing</dt><dd><p><a id="I_indexterm_id839961" class="indexterm"/>Wrapping of primitive types in Java by their object wrapper types. See also <span class="emphasis"><em><a class="xref" href="go01.html#unboxing" title="unboxing">unboxing</a></em></span>.</p></dd><dt>byte</dt><dd><p><a id="I_indexterm_id839981" class="indexterm"/>A primitive Java data type that’s an 8-bit two’s-complement signed number.</p></dd><dt>callback</dt><dd><p><a id="I_indexterm_id839996" class="indexterm"/>A behavior that is defined by one object and then later invoked by another object when a particular event occurs. The Java event mechanism is a kind of callback.</p></dd><dt>cast</dt><dd><p><a id="I_indexterm_id840012" class="indexterm"/>The changing of the apparent type of a Java object from one type to another, specified type. Java casts are checked both statically by the Java compiler and at runtime.</p></dd><dt><a id="gl_catch"/>catch</dt><dd><p><a id="I_indexterm_id840027" class="indexterm"/>The Java <code class="literal">catch</code> statement introduces an exception-handling block of code following a <code class="literal">try</code> statement. The <code class="literal">catch</code> keyword is followed by an exception type and argument name in parentheses and a block of code within curly braces.</p></dd><dt>certificate</dt><dd><p><a id="I_indexterm_id840056" class="indexterm"/>An electronic document using a digital signature to assert the identity of a person, group, or organization. Certificates attest to the identity of a person or group and contain that organization’s public key. A certificate is signed by a certificate authority with its digital signature.</p></dd><dt>certificate authority (CA)</dt><dd><p><a id="I_indexterm_id840074" class="indexterm"/> <a id="I_indexterm_id840080" class="indexterm"/>An organization that is entrusted to issue certificates, taking whatever steps are necessary to verify the real-world identity for which it is issuing the certificate.</p></dd><dt>char</dt><dd><p><a id="I_indexterm_id840094" class="indexterm"/>A primitive Java data type; a variable of type <code class="literal">char</code> holds a single 16-bit Unicode character.</p></dd><dt>class</dt><dd><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>The fundamental unit that defines an object in most object-oriented programming languages. A class is an encapsulated collection of variables and methods that may have privileged access to one another. Usually a class can be instantiated to produce an object that’s an instance of the class, with its own unique set of data.<a id="I_indexterm_id840132" class="indexterm"/></p></li><li class="listitem"><p>The <code class="literal">class</code> keyword is used to declare a class, thereby defining a new object type.</p></li></ol></div></dd><dt>classloader</dt><dd><p><a id="I_indexterm_id840154" class="indexterm"/>An instance of the class <code class="literal">java.lang.ClassLoader</code>, which is responsible for loading Java binary classes into the Java VM. Classloaders help partition classes based on their source for both structural and security purposes and can also be chained in a parent-child hierarchy.</p></dd><dt>class method</dt><dd><p>See <span class="emphasis"><em><a class="xref" href="go01.html#gl_staticmethod" title="static method">static method</a></em></span>.</p></dd><dt>classpath</dt><dd><p><a id="I_indexterm_id840191" class="indexterm"/>The sequence of path locations specifying directories and archive files containing compiled Java class files and resources, which are searched in order to find components of a Java application.</p></dd><dt><a id="gl_classvariable"/>class variable</dt><dd><p>See <span class="emphasis"><em><a class="xref" href="go01.html#gl_staticvariable" title="static variable">static variable</a></em></span>.</p></dd><dt><a id="gl_client"/>client</dt><dd><p><a id="I_indexterm_id840220" class="indexterm"/>The consumer of a resource or the party that initiates a conversation in the case of a networked client/server application. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_server" title="server">server</a></em></span>.</p></dd><dt>Collections API</dt><dd><p>Classes in the core <code class="literal">java.util</code> package for working with and sorting structured collections or maps of items. This API includes the <code class="literal">Vector</code> and <code class="literal">Hashtable</code> classes as well as newer items such as <code class="literal">List</code>, <code class="literal">Map</code>, and <code class="literal">Queue</code>.</p></dd><dt>compilation unit</dt><dd><p><a id="I_indexterm_id840278" class="indexterm"/>The unit of source code for a Java class. A compilation unit normally contains a single class definition and in most current development environments is simply a file with a <span class="emphasis"><em>.java</em></span> extension.</p></dd><dt>compiler</dt><dd><p><a id="I_indexterm_id840295" class="indexterm"/>A program that translates source code into executable code.</p></dd><dt>component architecture</dt><dd><p><a id="I_indexterm_id840308" class="indexterm"/>A methodology for building parts of an application. It is a way to build reusable objects that can be easily assembled to form applications.</p></dd><dt>composition</dt><dd><p><a id="I_indexterm_id840321" class="indexterm"/>Combining existing objects to create another, more complex object. When you compose a new object, you create complex behavior by delegating tasks to the internal objects. Composition is different from inheritance, which defines a new object by changing or refining the behavior of an old object. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_inheritance" title="inheritance">inheritance</a></em></span>.</p></dd><dt>constructor</dt><dd><p><a id="I_indexterm_id840346" class="indexterm"/>A special method that is invoked automatically when a new instance of a class is created. Constructors are used to initialize the variables of the newly created object. The constructor method has the same name as the class and no explicit return value.</p></dd><dt>content handler</dt><dd><p><a id="I_indexterm_id840362" class="indexterm"/>A class that is called to parse a particular type of data and that converts it to an appropriate object.</p></dd><dt>datagram</dt><dd><p><a id="I_indexterm_id840375" class="indexterm"/>A packet of data normally sent using a connectionless protocol such as UDP, which provides no guarantees about delivery or error checking and provides no control information.</p></dd><dt>data hiding</dt><dd><p>See <span class="emphasis"><em><a class="xref" href="go01.html#gl_encapsulation" title="encapsulation">encapsulation</a></em></span>.</p></dd><dt><a id="gl_deepcopy"/>deep copy</dt><dd><p><a id="I_indexterm_id840407" class="indexterm"/>A duplicate of an object along with all of the objects that it references, transitively. A deep copy duplicates the entire “graph” of objects, instead of just duplicating references. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_shallowcopy" title="shallow copy">shallow copy</a></em></span>.</p></dd><dt>DOM (Document Object Model)</dt><dd><p><a id="I_indexterm_id840428" class="indexterm"/>An in-memory representation of a fully parsed XML document using objects with names like <code class="literal">Element</code>, <code class="literal">Attribute</code>, and <code class="literal">Text</code>. The Java XML DOM API binding is standardized by the World Wide Web Consortium (W3C).</p></dd><dt>double</dt><dd><p><a id="I_indexterm_id840460" class="indexterm"/>A Java primitive data type; a <code class="literal">double</code> value is a 64-bit (double-precision) floating-point number.</p></dd><dt>DTD (Document Type Definition)</dt><dd><p><a id="I_indexterm_id840480" class="indexterm"/> <a id="I_indexterm_id840487" class="indexterm"/>A document containing specialized language that expresses constraints on the structure of XML tags and tag attributes. DTDs are used to validate an XML document and can constrain the order and nesting of tags as well as the allowed values of attributes.</p></dd><dt>EJB (Enterprise JavaBeans)</dt><dd><p><a id="I_indexterm_id840507" class="indexterm"/> <a id="I_indexterm_id840514" class="indexterm"/>A server-side business component architecture named for, but not significantly related to, the JavaBeans component architecture. EJBs represent business services and database components and provide declarative security and transactions.</p></dd><dt><a id="gl_encapsulation"/>encapsulation</dt><dd><p><a id="I_indexterm_id840536" class="indexterm"/>The object-oriented programming technique of limiting the exposure of variables and methods to simplify the API of a class or package. Using the private and <em class="filename">protected</em> keywords, a programmer can limit the exposure of internal (“black box”) parts of a class. Encapsulation reduces bugs and promotes reusability and modularity of classes. This technique is also known as <span class="emphasis"><em>data hiding</em></span>.</p></dd><dt><a id="gl_enum"/>enum</dt><dd><p><a id="I_indexterm_id840563" class="indexterm"/>The Java keyword for declaring an enumerated type. An enum holds a list of constant object identifiers that can be used as a typesafe alternative to numeric constants that serve as identifiers or labels.</p></dd><dt>enumeration</dt><dd><p>See <span class="emphasis"><em><a class="xref" href="go01.html#gl_enum" title="enum">enum</a></em></span>.</p></dd><dt><a id="gl_erasure"/>erasure</dt><dd><p><a id="I_indexterm_id840590" class="indexterm"/>The implementation technique used by Java generics in which generic type information is removed (erased) and distilled to raw Java types at compilation. Erasure provides backward compatibility with nongeneric Java code, but introduces some difficulties in the language.</p></dd><dt>event</dt><dd><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A user’s action, such as a mouse-click or keypress.<a id="I_indexterm_id840621" class="indexterm"/></p></li><li class="listitem"><p>The Java object delivered to a registered event listener in response to a user action or other activity in the system.</p></li></ol></div></dd><dt>exception</dt><dd><p><a id="I_indexterm_id840644" class="indexterm"/>A signal that some unexpected condition has occurred in the program. In Java, exceptions are objects that are subclasses of <code class="literal">Exception</code> or <code class="literal">Error</code>(which themselves are subclasses of <code class="literal">Throwable</code>). Exceptions in Java are “raised” with the <code class="literal">throw</code> keyword and handled with the <code class="literal">catch</code> keyword. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_catch" title="catch">catch</a></em></span>, <span class="emphasis"><em><a class="xref" href="go01.html#gl_throw" title="throw">throw</a></em></span>, and <span class="emphasis"><em><a class="xref" href="go01.html#gl_throws" title="throws">throws</a></em></span>.</p></dd><dt>exception chaining</dt><dd><p><a id="I_indexterm_id840703" class="indexterm"/>The design pattern of catching an exception and throwing a new, higher-level, or more appropriate exception that contains the underlying exception as its <span class="emphasis"><em>cause</em></span>. The “cause” exception can be retrieved if necessary.</p></dd><dt><a id="gl_extends"/>extends</dt><dd><p><a id="I_indexterm_id840725" class="indexterm"/>A keyword used in a <code class="literal">class</code> declaration to specify the superclass of the class being defined. The class being defined has access to all the <code class="literal">public</code> and <code class="literal">protected</code> variables and methods of the superclass (or, if the class being defined is in the same package, it has access to all <code class="literal">nonprivate</code> variables and methods). If a class definition omits the <code class="literal">extends</code> clause, its superclass is taken to be <code class="literal">java.lang.Object</code>.</p></dd><dt><a id="gl_final"/>final</dt><dd><p><a id="I_indexterm_id840776" class="indexterm"/> <a id="I_indexterm_id840784" class="indexterm"/>A keyword modifier that may be applied to classes, methods, and variables. It has a similar, but not identical, meaning in each case. When <code class="literal">final</code> is applied to a class, it means that the class may never be subclassed. <code class="literal">java.lang.System</code> is an example of a <code class="literal">final</code> class. When <code class="literal">final</code> is applied to a variable, the variable is a constant—that is, it can’t be modified.</p></dd><dt>finalize</dt><dd><p><a id="I_indexterm_id840821" class="indexterm"/>A reserved method name. The <code class="literal">finalize()</code> method is called by the Java VM when an object is no longer being used (i.e., when there are no further references to it) but before the object’s memory is actually reclaimed by the system. A finalizer should perform cleanup tasks and free system resources before the object is discarded by Java’s garbage collection system.</p></dd><dt><a id="gl_finally"/>finally</dt><dd><p>A keyword that introduces the <code class="literal">finally</code> block of a <code class="literal">try</code>/<code class="literal">catch</code>/<code class="literal">finally</code> construct. <code class="literal">catch</code> and <code class="literal">finally</code> blocks provide exception handling and routine cleanup for code in a <code class="literal">try</code> block. The <code class="literal">finally</code> block is optional and appears after the <code class="literal">try</code> block, and after zero or more <code class="literal">catch</code> blocks. The code in a <code class="literal">finally</code> block is executed once, regardless of how the code in the try block executes. In normal execution, control reaches the end of the <code class="literal">try</code> block and proceeds to the <code class="literal">finally</code> block, which generally performs any necessary cleanup.</p></dd><dt>float</dt><dd><p><a id="I_indexterm_id840930" class="indexterm"/>A Java primitive data type; a <code class="literal">float</code> value is a 32-bit (single-precision) floating-point number represented in IEEE 754 format.</p></dd><dt>garbage collection</dt><dd><p><a id="I_indexterm_id840949" class="indexterm"/>The process of reclaiming the memory of objects no longer in use. An object is no longer in use when there are no references to it from other objects in the system and no references in any local variables on the method call stack.</p></dd><dt>generics</dt><dd><p><a id="I_indexterm_id840965" class="indexterm"/>The syntax and implementation of parameterized types in the Java language, added in Java 5.0. Generic types are Java classes that are parameterized by the user on one or more additional Java types to specialize the behavior of the class. Generics are sometimes referred to as <span class="emphasis"><em>templates</em></span> in other languages.</p></dd><dt>generic class</dt><dd><p><a id="I_indexterm_id840985" class="indexterm"/>A class that uses the Java generics syntax and is parameterized by one or more type variables, which represent class types to be substituted by the user of the class. Generic classes are particularly useful for container objects and collections that can be specialized to operate on a specific type of element.</p></dd><dt>generic method</dt><dd><p><a id="I_indexterm_id841004" class="indexterm"/>A method that uses the Java generics syntax and has one or more arguments or return types that refer to type variables representing the actual type of data element the method will use. The Java compiler can often infer the types of the type variables from the usage context of the method.</p></dd><dt>graphics context</dt><dd><p><a id="I_indexterm_id841023" class="indexterm"/>A drawable surface represented by the <code class="literal">java.awt.Graphics</code> class. A graphics context contains contextual information about the drawing area and provides methods for performing drawing operations in it.</p></dd><dt>GUI (graphical user interface)</dt><dd><p><a id="I_indexterm_id841042" class="indexterm"/> <a id="I_indexterm_id841049" class="indexterm"/>A traditional, visual user interface consisting of a window containing graphical items such as buttons, text fields, pull-down menus, dialog boxes, and other standard interface components.</p></dd><dt><a id="gl_hashcode"/>hashcode</dt><dd><p><a id="I_indexterm_id841065" class="indexterm"/>A random-looking identifying number, based on the data content of an object, used as a kind of signature for the object. A hashcode is used to store an object in a hash table (or hash map). See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_hashtable" title="hash table">hash table</a></em></span>.</p></dd><dt><a id="gl_hashtable"/>hash table</dt><dd><p><a id="I_indexterm_id841086" class="indexterm"/>An object that is like a dictionary or an associative array. A hash table stores and retrieves elements using key values called hashcodes. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_hashcode" title="hashcode">hashcode</a></em></span>.</p></dd><dt>hostname</dt><dd><p><a id="I_indexterm_id841104" class="indexterm"/>The human-readable name given to an individual computer attached to the Internet.</p></dd><dt>HotJava</dt><dd><p><a id="I_indexterm_id841116" class="indexterm"/>An early web browser written in Java, capable of downloading and running Java applets.</p></dd><dt>HTTP (Hypertext Transfer Protocol)</dt><dd><p><a id="I_indexterm_id841129" class="indexterm"/> <a id="I_indexterm_id841136" class="indexterm"/>The protocol used by web browsers or other clients to talk to web servers. The simplest form of the protocol uses the commands <code class="literal">GET</code> to request a file and POST to send data.</p></dd><dt>IDE (Integrated Development Environment)</dt><dd><p><a id="I_indexterm_id841156" class="indexterm"/> <a id="I_indexterm_id841162" class="indexterm"/>A GUI tool such as NetBeans or Eclipse that provides source editing, compiling, running, debugging, and deployment functionality for developing Java applications.</p></dd><dt>implements</dt><dd><p><a id="I_indexterm_id841176" class="indexterm"/>A keyword used in class declarations to indicate that the class implements the named interface or interfaces. The <code class="literal">implements</code> clause is optional in class declarations; if it appears, it must follow the <code class="literal">extends</code> clause (if any). If an implements clause appears in the declaration of a non-<code class="literal">abstract</code> class, every method from each specified interface must be implemented by the class or by one of its superclasses.</p></dd><dt>import</dt><dd><p><a id="I_indexterm_id841208" class="indexterm"/>The <code class="literal">import</code> statement makes Java classes available to the current class under an abbreviated name or disambiguates classes imported in bulk by other <code class="literal">import</code> statements. (Java classes are always available by their fully qualified name, assuming the appropriate class file can be found relative to the <code class="literal">CLASSPATH</code> environment variable and that the class file is readable. <code class="literal">import</code> doesn’t make the class available; it just saves typing and makes your code more legible.) Any number of <code class="literal">import</code> statements may appear in a Java program. They must appear, however, after the optional <code class="literal">package</code> statement at the top of the file, and before the first class or interface definition in the file.</p></dd><dt><a id="gl_inheritance"/>inheritance</dt><dd><p><a id="I_indexterm_id841262" class="indexterm"/>An important feature of object-oriented programming that involves defining a new object by changing or refining the behavior of an existing object. Through inheritance, an object implicitly contains all of the non-<code class="literal">private</code> variables and methods of its superclass. Java supports single inheritance of classes and multiple inheritance of interfaces.</p></dd><dt>inner class</dt><dd><p><a id="I_indexterm_id841290" class="indexterm"/>A class definition that is nested within another class or a method. An inner class functions within the lexical scope of another class.</p></dd><dt><a id="gl_instance"/>instance</dt><dd><p><a id="I_indexterm_id841307" class="indexterm"/>An occurrence of something, usually an object. When a class is instantiated to produce an object, we say the object is an <span class="emphasis"><em>instance</em></span> of the class.</p></dd><dt>instance method</dt><dd><p><a id="I_indexterm_id841323" class="indexterm"/>A non-<code class="literal">static</code> method of a class. Such a method is passed an implicit <code class="literal">this</code> reference to the object that invoked it. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_static" title="static">static</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_staticmethod" title="static method">static method</a></em></span>.</p></dd><dt>instanceof</dt><dd><p><a id="I_indexterm_id841357" class="indexterm"/>A Java operator that returns <code class="literal">true</code> if the object on its left side is an instance of the class (or implements the interface) specified on its right side. <code class="literal">instanceof</code> returns <code class="literal">false</code> if the object isn’t an instance of the specified class or doesn’t implement the specified interface. It also returns <code class="literal">false</code> if the specified object is <code class="literal">null</code>.</p></dd><dt>instance variable</dt><dd><p><a id="I_indexterm_id841402" class="indexterm"/>A non-<code class="literal">static</code> variable of a class. Each instance of a class has an independent copy of all of the instance variables of the class. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_classvariable" title="class variable">class variable</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_static" title="static">static</a></em></span>.</p></dd><dt>int</dt><dd><p><a id="I_indexterm_id841433" class="indexterm"/>A primitive Java data type that’s a 32-bit two’s-complement signed number.</p></dd><dt>interface</dt><dd><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>A keyword used to declare an interface.<a id="I_indexterm_id841457" class="indexterm"/></p></li><li class="listitem"><p>A collection of abstract methods that collectively define a type in the Java language. Classes implementing the methods may declare that they implement the interface type and instances of them may be treated as that type.</p></li></ol></div></dd><dt>internationalization</dt><dd><p><a id="I_indexterm_id841473" class="indexterm"/>The process of making an application accessible to people who speak a variety of languages. Sometimes abbreviated I18N.</p></dd><dt>interpreter</dt><dd><p><a id="I_indexterm_id841489" class="indexterm"/>The module that decodes and executes Java bytecode. Most Java bytecode is not, strictly speaking, interpreted any longer but compiled to native code dynamically by the Java VM.</p></dd><dt>introspection</dt><dd><p><a id="I_indexterm_id841502" class="indexterm"/>The process by which a JavaBean provides additional information about itself, supplementing information learned by reflection.</p></dd><dt>ISO 8859-1</dt><dd><p><a id="I_indexterm_id841515" class="indexterm"/>An 8-bit character encoding standardized by the ISO. This encoding is also known as Latin-1 and contains characters from the Latin alphabet suitable for English and most languages of western Europe.</p></dd><dt>JavaBeans</dt><dd><p><a id="I_indexterm_id841528" class="indexterm"/>A component architecture for Java. It is a way to build interoperable Java objects that can be manipulated easily in a visual application builder environment.</p></dd><dt>Java beans</dt><dd><p><a id="I_indexterm_id841544" class="indexterm"/>Java classes that are built following the JavaBeans design patterns and conventions.</p></dd><dt>JavaScript</dt><dd><p><a id="I_indexterm_id841566" class="indexterm"/>A language developed early in the history of the Web by Netscape for creating dynamic web pages. From a programmer’s point of view, it’s unrelated to Java, although some of its syntax is similar.</p></dd><dt>JAXB (Java API for XML Binding)</dt><dd><p><a id="I_indexterm_id841581" class="indexterm"/>A Java API that allows for generation of Java classes from XML DTD or Schema descriptions and the generation of XML from Java classes.</p></dd><dt>JAXP (Java API for XML Parsers)</dt><dd><p><a id="I_indexterm_id841597" class="indexterm"/> <a id="I_indexterm_id841604" class="indexterm"/>The Java API that allows for pluggable implementations of XML and XSL engines. This API provides an implementation- neutral way to construct parsers and transforms.</p></dd><dt>JAX-RPC</dt><dd><p><a id="I_indexterm_id841623" class="indexterm"/>The Java API for XML Remote Procedure Calls, used by web services.</p></dd><dt>JDBC (Java Database Connectivity)</dt><dd><p><a id="I_indexterm_id841636" class="indexterm"/> <a id="I_indexterm_id841642" class="indexterm"/>The standard Java API for talking to an SQL (Structured Query Language) database.</p></dd><dt>JDOM</dt><dd><p><a id="I_indexterm_id841655" class="indexterm"/>A native Java XML DOM created by Jason Hunter and Brett McLaughlin. JDOM is easier to use than the standard DOM API for Java. It uses the Java collections API and standard Java conventions. Available at <a class="ulink" href="http://www.jdom.org/">http://www.jdom.org/</a>.</p></dd><dt>JWSDP (Java Web Services Developer Pack)</dt><dd><p><a id="I_indexterm_id841679" class="indexterm"/> <a id="I_indexterm_id841685" class="indexterm"/>A bundle of standard extension APIs packaged as a group with an installer from Sun. The JWSDP includes JAXB, JAX-RPC, and other XML and web services-related packages.</p></dd><dt>Latin-1</dt><dd><p><a id="I_indexterm_id841704" class="indexterm"/>A nickname for ISO 8859-1.</p></dd><dt>layout manager</dt><dd><p><a id="I_indexterm_id841717" class="indexterm"/>An object that controls the arrangement of components within the display area of a Swing or AWT container.</p></dd><dt>lightweight component</dt><dd><p><a id="I_indexterm_id841732" class="indexterm"/>A pure Java GUI component that has no native peer in the AWT.</p></dd><dt>local variable</dt><dd><p><a id="I_indexterm_id841744" class="indexterm"/>A variable that is declared inside a method. A local variable can be seen only by code within that method.</p></dd><dt>Logging API</dt><dd><p><a id="I_indexterm_id841757" class="indexterm"/>The Java API for structured logging and reporting of messages from within application components. The Logging API supports logging levels indicating the importance of messages, as well as filtering and output capabilities.</p></dd><dt>long</dt><dd><p><a id="I_indexterm_id841778" class="indexterm"/>A primitive Java data type that’s a 64-bit two’s-complement signed number.</p></dd><dt>message digest</dt><dd><p><a id="I_indexterm_id841793" class="indexterm"/>A cryptographically computed number based on the content of a message, used to determine whether the message’s contents have been changed in any way. A change to a message’s contents will change its message digest. When implemented properly, it is almost impossible to create two similar messages with the same digest.</p></dd><dt>method</dt><dd><p><a id="I_indexterm_id841811" class="indexterm"/>The object-oriented programming term for a function or procedure.</p></dd><dt>method overloading</dt><dd><p><a id="I_indexterm_id841826" class="indexterm"/>Provides definitions of more than one method with the same name but with different argument lists. When an overloaded method is called, the compiler determines which one is intended by examining the supplied argument types.</p></dd><dt>method overriding</dt><dd><p><a id="I_indexterm_id841847" class="indexterm"/>Defines a method that matches the name and argument types of a method defined in a superclass. When an overridden method is invoked, the interpreter uses <span class="emphasis"><em>dynamic method lookup</em></span> to determine which method definition is applicable to the current object. Beginning in Java 5.0, overridden methods can have different return types, with restrictions.</p></dd><dt>Model-View-Controller (MVC) framework</dt><dd><p><a id="I_indexterm_id841875" class="indexterm"/>A user interface design that originated in Smalltalk. In MVC, the data for a display item is called the <span class="emphasis"><em>model</em></span>. A <span class="emphasis"><em>view</em></span> displays a particular representation of the model, and a <span class="emphasis"><em>controller</em></span> provides user interaction with both. Java incorporates many MVC concepts.</p></dd><dt>modifier</dt><dd><p><a id="I_indexterm_id841904" class="indexterm"/>A keyword placed before a class, variable, or method that alters the item’s accessibility, behavior, or semantics. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_abstract" title="abstract">abstract</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_final" title="final">final</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_nativemethod" title="native method">native method</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_private" title="private">private</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_protected" title="protected">protected</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_public" title="public">public</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_static" title="static">static</a></em></span>; <span class="emphasis"><em><a class="xref" href="go01.html#gl_synchronized" title="synchronized">synchronized</a></em></span>.</p></dd><dt>NaN (not-a-number)</dt><dd><p><a id="I_indexterm_id841960" class="indexterm"/> <a id="I_indexterm_id841966" class="indexterm"/>This is a special value of the <code class="literal">double</code> and <code class="literal">float</code> data types that represents an undefined result of a mathematical operation, such as zero divided by zero.</p></dd><dt><a id="gl_nativemethod"/>native method</dt><dd><p><a id="I_indexterm_id841992" class="indexterm"/>A method that is implemented in a native language on a host platform, rather than being implemented in Java. Native methods provide access to such resources as the network, the windowing system, and the host filesystem.</p></dd><dt>new</dt><dd><p><a id="I_indexterm_id842006" class="indexterm"/>A unary operator that creates a new object or array (or raises an <em class="filename">OutOfMemoryException</em> if there is not enough memory available).</p></dd><dt>NIO</dt><dd><p><a id="I_indexterm_id842031" class="indexterm"/>The Java “new” I/O package. A core package introduced in Java 1.4 to support asynchronous, interruptible, and scalable I/O operations. The NIO API supports non-threadbound “select” style I/O handling.</p></dd><dt>null</dt><dd><p><a id="I_indexterm_id842049" class="indexterm"/> <code class="literal">null</code> is a special value that indicates that a reference-type variable doesn’t refer to any object instance. Static and instance variables of classes default to the value <code class="literal">null</code> if not otherwise assigned.</p></dd><dt>object</dt><dd><div class="orderedlist"><ol class="orderedlist"><li class="listitem"><p>The fundamental structural unit of an object-oriented programming language, encapsulating a set of data and behavior that operates on that data.<a id="I_indexterm_id842085" class="indexterm"/></p></li><li class="listitem"><p>An instance of a class, having the structure of the class but its own copy of data elements. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_instance" title="instance">instance</a></em></span>.</p></li></ol></div></dd><dt>&lt;object&gt; tag</dt><dd><p><a id="I_indexterm_id842108" class="indexterm"/>An HTML tag used to embed media objects and applications into web browsers like the <code class="literal">&lt;applet&gt;</code> tag.</p></dd><dt>package</dt><dd><p><a id="I_indexterm_id842128" class="indexterm"/>The <code class="literal">package</code> statement specifies the Java package for a Java class. Java code that is part of a particular package has access to all classes (<code class="literal">public</code> and non-<code class="literal">public</code>) in the package, and all non-<code class="literal">private</code> methods and fields in all those classes. When Java code is part of a named package, the compiled class file must be placed at the appropriate position in the <code class="literal">CLASSPATH</code> directory hierarchy before it can be accessed by the Java interpreter or other utilities. If the <em class="filename">package</em> statement is omitted from a file, the code in that file is part of an unnamed default package. This is convenient for small test programs run from the command line, or during development because it means that the code can be interpreted from the current directory.</p></dd><dt>&lt;param&gt; tag</dt><dd><p><a id="I_indexterm_id842185" class="indexterm"/>An HTML tag used within <code class="literal">&lt;applet&gt; ... &lt;/applet&gt;</code> to specify a named parameter and string value to an applet within a web page.</p></dd><dt>parameterized type</dt><dd><p><a id="I_indexterm_id842206" class="indexterm"/>A class, using Java generics syntax, that is dependent on one or more types to be specified by the user. The user-supplied parameter types fill in type values in the class and adapt it for use with the specified types.</p></dd><dt>plug-in</dt><dd><p><a id="I_indexterm_id842223" class="indexterm"/>A modular application component for a web browser designed to extend the browser’s capabilities to handle a specific type of data (MIME type). The Java Plug-in supports Java applets in browsers that do not have up-to-date Java runtime support.</p></dd><dt>polymorphism</dt><dd><p><a id="I_indexterm_id842239" class="indexterm"/>One of the fundamental principles of an object-oriented language. Polymorphism states that a type that extends another type is a “kind of” the parent type and can be used interchangeably with the original type by augmenting or refining its capabilities.</p></dd><dt>Preferences API</dt><dd><p><a id="I_indexterm_id842255" class="indexterm"/>The Java API for storing small amounts of information on a per-user or systemwide basis across executions of the Java VM. The Preferences API is analogous to a small database or the Windows registry.</p></dd><dt><a id="gl_primitivetype"/>primitive type</dt><dd><p><a id="I_indexterm_id842273" class="indexterm"/>One of the Java data types: <code class="literal">boolean</code>, <code class="literal">char</code>, <code class="literal">byte</code>, <code class="literal">short</code>, <code class="literal">int</code>, <code class="literal">long</code>, <code class="literal">float</code>, <code class="literal">double</code>. Primitive types are manipulated, assigned, and passed to methods “by value” (i.e., the actual bytes of the data are copied). See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_referencetype" title="reference type">reference type</a></em></span>.</p></dd><dt>printf</dt><dd><p><a id="I_indexterm_id842337" class="indexterm"/>A style of text formatting originating in the C language, relying on an embedded identifier syntax and variable-length argument lists to supply parameters.</p></dd><dt><a id="gl_private"/>private</dt><dd><p><a id="I_indexterm_id842352" class="indexterm"/>The <code class="literal">private</code> keyword is a visibility modifier that can be applied to method and field variables of classes. A private method or field is not visible outside its class definition and cannot be accessed by subclasses.</p></dd><dt><a id="gl_protected"/>protected</dt><dd><p><a id="I_indexterm_id842375" class="indexterm"/>A keyword that is a visibility modifier; it can be applied to method and field variables of classes. A <code class="literal">protected</code> field is visible only within its class, within subclasses, and within the package of which its class is a part. Note that subclasses in different packages can access only <code class="literal">protected</code> fields within themselves or within other objects that are subclasses; they cannot access protected fields within instances of the superclass.</p></dd><dt>protocol handler</dt><dd><p><a id="I_indexterm_id842404" class="indexterm"/>A URL component that implements the network connection required to access a resource for a type of URL scheme (such as HTTP or FTP). A Java protocol handler consists of two classes: a <code class="literal">StreamHandler</code> and a <code class="literal">URLConnection</code>.</p></dd><dt><a id="gl_public"/>public</dt><dd><p><a id="I_indexterm_id842430" class="indexterm"/>A keyword that is a visibility modifier; it can be applied to classes and interfaces and to the method and field variables of classes and interfaces. A <code class="literal">public</code> class or interface is visible everywhere. A non-<code class="literal">public</code> class or interface is visible only within its package. A <code class="literal">public</code> method or variable is visible everywhere its class is visible. When none of the <code class="literal">private</code>, <code class="literal">protected</code>, or <code class="literal">public</code> modifiers are specified, a field is visible only within the package of which its class is a part.</p></dd><dt>public-key cryptography</dt><dd><p><a id="I_indexterm_id842480" class="indexterm"/>A cryptographic system that requires public and private keys. The private key can decrypt messages encrypted with the corresponding public key, and vice versa. The public key can be made available to the public without compromising security and used to verify that messages sent by the holder of the private key must be genuine.</p></dd><dt>queue</dt><dd><p><a id="I_indexterm_id842500" class="indexterm"/>A list-like data structure normally used in a first in, first out fashion to buffer work items.</p></dd><dt>raw type</dt><dd><p><a id="I_indexterm_id842512" class="indexterm"/>In Java generics, the plain Java type of a class without any generic type parameter information. This is the true type of all Java classes after they are compiled. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_erasure" title="erasure">erasure</a></em></span>.</p></dd><dt><a id="gl_referencetype"/>reference type</dt><dd><p><a id="I_indexterm_id842538" class="indexterm"/>Any object or array. Reference types are manipulated, assigned, and passed to methods “by reference.” In other words, the underlying value is not copied; only a reference to it is. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_primitivetype" title="primitive type">primitive type</a></em></span>.</p></dd><dt>reflection</dt><dd><p><a id="I_indexterm_id842564" class="indexterm"/>The ability of a programming language to interact with structures of the language itself at runtime. Reflection in Java allows a Java program to examine class files at runtime to find out about their methods and variables, and to invoke methods or modify variables dynamically.</p></dd><dt>regular expression</dt><dd><p><a id="I_indexterm_id842580" class="indexterm"/>A compact yet powerful syntax for describing a pattern in text. Regular expressions can be used to recognize and parse most kinds of textual constructs, allowing for wide variation in their form.</p></dd><dt>Regular Expression API</dt><dd><p>The core <code class="literal">java.util.regex</code> package for using regular expressions. The regex package can be used to search and replace text based on sophisticated patterns.</p></dd><dt>Remote Method Invocation (RMI)</dt><dd><p><a id="I_indexterm_id842610" class="indexterm"/>RMI is a native Java distributed object system. With RMI, you can pass references to objects on remote hosts and invoke methods in them as if they were local objects.</p></dd><dt>SAX (Simple API for XML)</dt><dd><p><a id="I_indexterm_id842624" class="indexterm"/>SAX is an event-driven API for parsing XML documents in which the client receives events in response to activities such as the opening of tags, character data, and the closing of tags.</p></dd><dt>Schema</dt><dd><p><a id="I_indexterm_id842640" class="indexterm"/>XML Schemas are a replacement for DTDs. Introduced by the W3C, XML Schema is an XML-based language for expressing constraints on the structure of XML tags and tag attributes, as well as the structure and type of the data content. Other types of XML schema languages have different syntaxes.</p></dd><dt>SDK (Software Development Kit)</dt><dd><p><a id="I_indexterm_id842660" class="indexterm"/>A package of software distributed by Sun Microsystems for Java developers. It includes the Java interpreter, Java classes, and Java development tools: compiler, debugger, disassembler, applet viewer, stub file generator, and documentation generator. Also called the JDK.</p></dd><dt>SecurityManager</dt><dd><p><a id="I_indexterm_id842676" class="indexterm"/>The Java class that defines the methods the system calls to check whether a certain operation is permitted in the current environment.</p></dd><dt>serialize</dt><dd><p><a id="I_indexterm_id842695" class="indexterm"/>To serialize means to put in order or make sequential. A serialized object is an object that has been packaged so that it can be stored or transmitted over the network. Serialized methods are methods that have been synchronized with respect to threads so that only one may be executing at a given time.</p></dd><dt><a id="gl_server"/>server</dt><dd><p><a id="I_indexterm_id842711" class="indexterm"/>The party that provides a resource or accepts a request for a conversation in the case of a networked client/server application. See also <span class="emphasis"><em><a class="xref" href="go01.html#gl_client" title="client">client</a></em></span>.</p></dd><dt>servlet</dt><dd><p><a id="I_indexterm_id842729" c