Java Glossary

Last updated 1998 July 25 by Roedy Green ©1996-1998 Canadian Mind Products.
Stuck in a frame? Click here to break out.

A

abstract
A class that is missing definitions for one or more methods. You can't thus create an object of that class. You must first create a subclass and provide definitions for the abstract methods. Unlike interfaces, abstract classes may implement some of the methods.
abstract factory
a design pattern where you create several objects and their inter-relationships with a single command. See design patterns.
Abundance
A DOS-based experimental computer language dating back from 1981 that in many ways is still more advanced than Java.
accessor methods
Normally you don't make variables in your class public. Instead you provide public set and get methods for the variable. This lets you then later change the way the variable is stored, or add extra validation checks.
ACK
An abbreviation of the control code 'Acknowledge'. Some file transfer protocols send an ACK each time a block of error free data is received. See also NAK.
Acme
A clone of Javasoft's Web Server formerly known as Jeeves. See Servlet.
action
a method that is invoked when some specific type of event occurs, such as a mouse click or keystroke. It returns true if it was able to completely handle the event. If it cannot handle the event, it may invoke super.action to see if the superclass method can deal with it. If that too fails it can return false to indirectly request that the event object be given to the parent object's handleEvent method to deal with it. Normally an action method will return false. Unless it returns false, the event percolation will stop dead, and the event will not return back to the native GUI via the original peer object.
ActionListener
An interface that implements an actionPerformed(ActionEvent e) method to field the events generated when somebody clicks a button, or selects an item on a menu.
Activator
The Activator is now officially called the Java Plug-In, but the old name will be the one most people use for a while. Sun's Java environment that acts as a plugin to a browser, replacing any JVM that browser had. This way you can update your JVM without needing a new version of the entire browser. It also makes it more difficult for Microsoft Internet Explorer to avoid supporting the full Java JVM. Unfortunately the HTML viewed must contain <EMBED> tags for Netscape and <OBJECT> tags for Internet Explorer to invoke the Activator Plugin. If they contain only the standard Java <APPLET> tags, the browser will insist on using its built-in Java implementation even if it has the plugin installed.
ActiveX
Microsoft's Windows-specific non-Java technique for writing applets. ActiveX applets take considerably longer to download than the equivalent Java applets, however, they more fully exploit the features of Windows 95.
Ada
The US Department of Defense's language, Ada, has been ported to generate JVM code. It offers C++-like templates and extremely rigid type checking.
adapter
An adapter is one of the classic design patterns. It is also a class in Java that implements an interface with a set of dummy methods. You can then subclass the adapter class and override just the methods you need. If you implemented the interface directly, you would have to write all the dummy methods yourself. Most commonly an adapter is used to help you rapidly construct your own Listener class to field events. My extending an adapter class, with KeyAdapter, FocusAdapter, WindowAdapter etc. you don't have to write methods for events you are not interested in handling. See design patterns.
add
add a child component to a parent, e.g. add a button to a dialog box. See also remove.
addnotify
this means create a peer object for a component in the style the native supporting GUI likes. A component's addNotify method gets called when it has been added to a container. This has nothing whatsoever to do with notifying observers. See observer.
ADSL
Asymmetric Digital Subscriber Line technology, a high-speed transmission method design technique. The bandwidth is different in each direction, though logically full duplex. See Cobra.
Aelfred
A free Java-based XML parser. It takes a DTD definition document of the syntax of your specialised SGML/HTML-like language and then parses input written in your markup language. Takes 24K. See XML.
AFAIK
Internet jargon for As Far As I Know.
AFC
Microsoft's proprietary GUI interface for Java to the Windows GUI. The main disadvantage of using is that it is supported on only one platform. See IFC, JFC, Swing.
aglet
A mobile agent that conforms to a set of security restrictions. See mobile agent, applet.
AIX
IBM's operating system for its RISC workstation. It supports Java via the Hursley Park compiler.
algebraic data types
Algebraic data types are found in functional languages like Miranda and Haskell. Pizza, a Java superset, also has them. What are they? If you find out, please tell me. Maybe they are rational fractions where you keep both a numerator and denominator.
Alphaworks
An IBM subsidiary that markes an XML parser. It also makes a program that lets you produce executables for installing Java apps for a variety of platforms. See installation, XML.
Altavista Discovery
Digital/Altavista's search engine for the web, and also a personal search engine you can use on your own hard disks. It can be quite useful for finding the needle code you are looking for in a giant haystack.
amanuensis
An amanuensis is an intelligent scribe who helps you compose words or music. You don't have to give her all the details. She is quite capable of filling them in for you. I have written two amanuensis applets to help you write Java code. You give them just a few bits of information about what you want and they fill in the details generating the reams of code Java requires to specify the same thing. See the File IO amanuensis to help you write code to open, read, write and close files, and the Conversion amanuensis to help you convert any of the 16 basic types in Java into any of the others.
Amazon logo
Amazon.com
An enormous online bookstore that carries many Java related books. If you visit them by clicking on the logo, I get a 5% commission on any books, tapes or CDs you buy. The main disadvantage of shopping this way, is, if you elect standard ground shipping, you can wait 4 to 10 weeks for delivery. The main advantage is the huge selection.
Ameran
a company that provides JVM interpreters for small embedded computers. See JSpring.
anonymous classes
A type of inner class that has no name. You define it, and create an object of that type as a parameter all in one line. Used for creating simple delegate callback objects. The syntax is strange. It does not use the keywords class, implements or extends. You can refer to this of the outer class via MyOuterClass.this. You can refer to the outer class's methods by myOuterInstanceMethod() or MyOuterClass.this.myOuterInstanceMethod(); Anonymous inner classes are often used in setting up listeners. See this sample source code.. See inner class.
ANTLR
A parser, formerly known as PCCTS that generates Java source code. iDoc uses it. The official documentation I found quite daunting. I prodded Scott Stanchfield to write a tutorial based on the one he wrote for PCCTS.
ANSI
The American National Standards Institute. The creators of the ASCII character set.
API
Application Programmer Interface. The set of public methods a package presents to the world. In non-Java situations, it refers to the visible part of the code in some package you interact with.
applet
a partial Java application program designed to run inside the womb of a WEB browser, with help from some predefined support classes. They are not allowed to print. They are not allowed to write to serial ports. Applets are not permitted to read or write files. They are not even allowed to look in a directory or test for the existence of a file. There is loophole, if you have the user's co-operation. See this sample Applet.
Applets may only communicate with the server they were spawned from. If they were loaded from a local disk, they can't talk to any webserver. They could send/receive email to/from a different host, but only via the home host. Signed Applets can bypass this restriction by doing a PrivilegeManager.enablePrivilege("UniversalConnect"); to turn on the ability to talk to any host. Standalone Java applications are not so limited. Exactly what the limitations are is controlled by the security manager in the browser. If the user installs an alternate security class, the applet may have more powers. Signed applets in JDK 1.1 in IE4 are allowed to print. The security restrictions are controlled entirely by the browser. There is nothing to stop you from writing a non-conforming browser that has quite different security restrictions for Applets.
Programmers bitterly complain about these restrictions. The restricitions protect the end user from malicious web applets they might encounter on the web. Without such protection, vicious applets could destroy the user's hard disk, print reams of paper, phone out on a spare serial port and rack up long distance bills, go sniffing on the LAN for the company books... You don't want to give those powers to psychotic strangers -- those same people who stay up late at night writing viruses.
Applets are invoked to run in browsers by the <applet...> tag. Applets won't work if you load them directly with your browser as if they were web pages! The HTML commands for firing up an applet look like this:
HTML Tag Comments
<applet
code="MyClass.class" no qualification allowed. The name of the class file for the applet. Make sure the case and name exactly match the name of the *.java file, *.class file, and class name.
width=330 width of entire applet display in pixels
height=240 height of entire applet display in pixels
archive="Everything.jar,Sub/MoreStuff.zip" Resource file, classes etc.
codebase="MyClassFileDirectory" URL/directory where class files are, like a classpath.
vspace=10 pixel width of border above and below the applet
hspace=10 pixel width of border left and right of the applet
align=left how this applet aligns, treated like a image
alt="Sorry no Java" what to display if no Java interpreter available
name="receiver" Name for this applet so that other applets can communicate with it. Other applets would do a getAppletContext().getApplet("receiver") to get a handle on this applet.
> Note all that stuff above inside the <applet ... <
<param name="favouriteColour" value="orange"> The param statements are Java's ode to verbosity. They pass information to the applet. There can be as many param statements as you like.
<img SRC="images/NoJava4U.jpg"> image to display if no Java interpreter available.
</applet> and finally the ending tag for the
A minimal applet invocation might look like this:
<APPLET CODE="Converter.class" WIDTH=330 HEIGHT=240></APPLET>
Make sure you get your <s and >s in the right places. By adding the following method to your applet, you can allow it be run either as an applet or as an application. If your applet were called Converter, here is the code to add to the Converter class to make it ALSO into an application:
import java.awt.event;

    // allow this applet to run as as application as well
    static public void main(String args[]) {
        final Converter applet = new Converter();
        Frame frame = new Frame("Converter");
        frame.setVisible(false);
        frame.setSize(330,240);
        applet.init();
        frame.add(applet);
        frame.validate();
        frame.setVisible(true);
        applet.start();
        frame.addWindowListener(new java.awt.event.WindowAdapter()
            {
            public void windowClosing(WindowEvent e)
                {
                applet.stop();
                applet.destroy();
                System.exit(0);
                } // end WindowClosing
            } // end anonymous class
        ); // end addWindowListener line
    } // end main
Your applet can get hold of the parameters in the HTML. getParameter("favouriteColour") will return the String "orange". When you write an Applet often you will override some of the following methods: init(), start(), stop(), destroy() and paint(Graphics g). See application, aglet, servlet.
Archie
Internet speak for a program that will search the globe to find out which computers have copies of a program you want to download. An Archie sends requests to a few computers that maintain catalogs. It does not actually have to poll every computer in the world.
archive
In the context of ZIP files, archiving refers to collecting several files together in one carrier *.ZIP file, the way class.zip collects various classes in one file. Archiving does not necessarily imply compression, but rather often connotes uncompressed. See JAR, GZIP, ZIP.
arguments
In the definition of a method, you describe the arguments to be passed as parameters. When you invoke the method, the data provided are called the parameters.
ARQ
Automatic Repeat Request. If a transmission is garbled, some modems can automatically request that the garbled block be resent. MNP and V.42 are examples of such error-correcting protocols.
array
A fixed length block of primitives or references. Java never stores blocks of repeating structures. It always creates blocks of references to separately stored structures. Novices make two common errors: failing to allocate space for the array and failing to allocate objects for each cell. Java automatically initialises arrays of primitives to 0 and arrays of references to null. It won't create any objects for you automatically. Here is how you would allocate an array of primitives:
    // note how you never specify the array's size in its type declaration.
    int[] v;
    // allocate space for the array
    v = new int[100];
    for (int i=0; i<v.length; i++)
        v[i] = i*2+999;
Here is how you would allocate an array of objects.
    Cell[] v = new Cell[100];
    for (int i=0; i<v.length; i++)
        v[i] = new Cell(i,999);
You can initialise an array to a list of values this way:
    String[] fruits =
      {"banana", "pear", "orange", null, favouriteFruit()};
With JDK 1.1, you can assign an array to a list of values this way:
    fruits = new String[]
      {"banana", "pear", "orange", null, favouriteFruit()};
Methods can return arrays. The callee allocates the space for them.
String[] getFruits()
    { String[] s = new String[3];
       // at this point s[i] is null not ""
       s[0] = "banana";
       s[1] = "strawberry";
       s[2] = favouriteFruit();
    return s; }
See matrix, gotchas under array.
Ask The Java Pro
a question answering service.
ASCII
The term ASCII has different meanings depending on context. Strictly speaking, ASCII (American Standard for Information Interchange) is a code that assigns the letters of the alphabet, digits and punctuation to the numbers 0 to 127. If I said, "That word processing file is vanilla ASCII", it means it contains no formatting characters -- just the letters A to Z, digits and punctuation. If I said "That file is ASCII not EBCDIC", it means your file encodes the letter A as the number 65, B as 66 etc., rather than some other method. If I said "That file is pure ASCII, no high bit characters" it means the file contains just the ordinary characters -- no accented letters or line drawing set. If I said "I'm going to send this to you in raw ASCII protocol" it means I will be just sending you the raw characters, with nothing extra to help detect or correct errors -- just the raw keystrokes.
assembler
See JASM
assertions
Bertrand Meyer in Eiffel pioneered the use of structured assertions in a system he called Programming By Contract. These serve both to document the preconditions (require) on parameters coming into a method, and the guaranteed characteristics of the result (ensure). Unfortunately, Java still does not support them. They can be added with a the JaWa preprocessor. See JaWa.
association
In SQL, a many to many relationship between tables.
Assure
Assure is a tool that finds data race conditions, deadlocks and stalls in multithreaded Java programs. You simply run your program in the normal way using Assure, an instrumented JVM. Assure uses dynamic run-time analysis to find errors, the kind of synchronization errors that can be hard to find. Assure displays the results to you with errors pinpointed to the source line, with its own browser.
Asynchronous
Most modems used on personal computers are asynchronous. They send a character at a time rather than a message packet at a time. The luxury of sending a character at a time, means added overhead for start and stop bits.
AT command set
The Hayes modem commands all begin with the letters AT which means "Modem, may I please have your ATtention." Companies copying the Hayes command set, but not wishing to give Hayes a free plug, refer to it as AT compatible. see Hayes.
AU
a format for sound files that Java and Unix systems use. Applets play the files with Applet.getAudioClip and Applet.play methods. Applications use AudioPlayer.player.start(inputstream). Download Java source to generate *.AU files in RAM mathematically. It also converts *.AU files encoded with 8-bit mu-law back into 16-bit linear samples for mathematical analysis. Java can only play 8 bit, mu-law-encoded, 8000 Hz, one-channel (mono), AU files. There are other AU variants it cannot handle yet. How do you play sounds one after the other? How do you know when one has finished. You can estimate the time a sample will take to play by the sample count (or more roughly by the simple length of the file.) An AudioPlayer implementation might:
  1. Enqueue AU files to be played.
  2. Play all the AU files given to it simultaneously.
  3. Fail, perhaps annoying the user with a dialog box, if you give it more than one at a time.
You have to code defensively. See wav for information on converting Microsoft format to AU files. See wav, JMF.
Avalanche
Freestyle Software's Java Cryptography toolkit
AWT
Abstract Windowing Toolkit sometimes cheekily claimed to mean Another Widget Toolkit. It is a set of classes that let you write platform independent Java code that will hook into the native GUI systems on many different platforms.



HTML Checked! award
Canadian Mind Products The Mining Company's
Focus on Java
Best of the Net Award
You can get an updated copy of this page from http://mindprod.com/jglossa.html