Java Glossary

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

E

eclipse
See obscure.
EIA
Electronic Industries Association. An American standards body that created RS-232C -- a standard for which wires do what in the connection between a computer and a modem.
EIDE flaw
Many EIDE (Extended Integrated Drive Electronics) controllers, even on motherboards from major manufacturers like Intel, contain either of two flawed chip designs, the RZ-1000 or the CMD-640/CMD-640B. Both will subtly corrupt your data during simultaneous i/o. This is a far more serious problem than the famous "I am Pentium of Borg; you will be approximated" flaw in the Pentium floating point unit. Download the FAQ.
Eiffel
a language similar to Java that has multiple inheritance, genericity, asd assertions (design by contract). There is a compiler that generates JVM byte codes and uses the AWT. You can get a student edition of Visual Eiffel for $100 from Sigco. The designer, Betrand Meyer's home is Eiffel.com. See iContract.
Embedded Java
The full Business Java language with the enterprise communications and GUI stripped out of it. This is the sort of Java you might see on a smartcard. See Business Java, Personal Java, Windows CE.
Ellison, Larry
The CEO of Oracle, a company that makes SQL engines. He is known for evangelising Network Computers, centralising the control of software installation and maintenance.
enable
make a button display normally and start accepting clicks. Disabled components are visible, but typically shown dim, grayed out, ghosts or shadows to indicate they won't work if you click them.
enabled
Is the control or button capable of accepting mouse clicks? It might be visible, but temporarily grayed out to disable it.
encoding
Readers translate from various 8-bit byte streams to standard 16-bit Unicode to read. You can specify the sort of translation to use when you create the Reader. Just which translation schemes are supported is not documented, nor is there a documented way to find out just which ones are supported on your JVM. Here are some typically supported:
Encoding nameDescription
8859_1 Latin-1 ASCII (the default). This just takes the low order 8 bits and tacks on a high order 0 byte.
Big5 Chinese
Cp1250 .. Cp1258 Windows code pages. Code sets for various versions of Windows. For example, the Microsoft J++ JVM uses cp1252 for the English version of NT.
Default 7-bit ASCII (not the actual default!) Strips off the high order bit 7 and tacks on a high order 0 byte.
GB2312 Chinese
JIS Japanese
JIS0208 Japanese
KSC5601Korean
SingleByte This does not expand low order eight-bits with high order zero as its name implies. It looks to be a complex encoding for some Asian language.
SJIS Shift JIS. Japanese. A Microsoft code that extends csHalfWidthKatakana to include kanji by adding a second byte when the value of the first byte is in the ranges 81-9F or E0-EF.
UTF8 counted strings
The best place to look for clues is in the IANA (Internet Assigned Numbers Authority) list of character set names at http://www.isi.edu/in-notes/iana/assignments/character-sets. Note that what Java and the HTML 4.0 specification call a "character encoding" is actually called a "character set" at IANA and in the HTTP proposed standard. Adam Dingle did the research on how these encodings work. See IANA.
endian
Java stores binary values internally and in files MSB (Most Significant Byte) first, i.e. high order part first. This is referred to as big-endian byte sex or sometimes network order. What do you do if your data files are in little-endian format as would be the case for most Windows-95 binary files? Read this essay. See binary formats.
endless loop
See loop, endless.
Ensuite
Lotus/IBM's mini office suite for Java, (formerly known as Kona), written as a set of Java applets. It is roughly comparable to Microsoft Works. It contains a word processor, mail program, spread sheet, browser, appointment scheduler, slide presentation maker. It is written in 100% pure Java so can run on any platform with 100% compatible file formats. It costs $50 for a single user copy and $1500 for a server license that lets you use it on all machines connected to that server. I saw a demo of it at the Colorado Summit. I was impressed with the snazzy graphics, simple user interface and surprisingly good response time. It makes extensive use of serialisation to save system state for applet swapping or so that you can pick up right where you left off when you power up again. To run it properly you need a LAN, not just an Internet connection to your server.
EOL
End Of Line. In Java, usually the end of line is marked by \n (0x0a). In native files, sometimes end of line is marked by \r\n 0x0d 0x0a. (e.g. in Windows systems which hark back to the teletype which had to be told separately to move the printhead to the left margin and one line down.) If you use a DataOutputStream, there will be no special marker unless you put one there. To code in a platform-independent way use:
String eol = System.getProperty("line.separator");
Note the spelling. 80% of programmers are under the delusion "separator" is spelled "seperator". The println, newLine and readLine methods should let you ignore the problem of local newline conventions. See properties.
EspressoGrinder
a Java compiler that implements a -obfuscate option to shroud the names of classes and variables in the object code. See shroud.
essential documentation
See the essential documentation section under Documentation.
enumerated types
Java does not have enumerated types the way Pascal and C++ do. There are two ways to get around the problem:
  1. Create a Vegetable class just to hold your collection of public static final int constants that encode the possibilities. In simple cases you don't bother with a separate Vegetable class for your constants. You just define them in the JuiceBar class. The disadvantages of this method are:
    • You just close your eyes to parameter type checking. To the compiler any int will do as a parameter to a method expecting a Vegetable code. It does not care if you pass a Vegetable code, or diameter in millimeters
    • You have to manually assign numbers to each option.
    • public class Vegetable {
        public static final int unknown  = 0;
        public static final int beet     = 1;
        public static final int brocolli = 2;
        public static final int carrot   = 3;
        } // end class Vegetable
      
      public class JuiceBar {
        public void mixIn (int v)
         { switch (v)
            {
            case Vegetable.brocolli: ... break;
            case Vegetable.carrot:   ... break;
            default:                 ...
            }
        } // end mixIn
        } // end class Juicebar
  2. Create a Vegetable class to contain your collection of various named static final objects to represent each possibility. The main problems with this method are:
    • Extra run time overhead.
    • You have to create a separate Vegetable class. You can't just piggyback the constants inside the JuiceBar class that uses them.
    • You can't use your possibility constants in a switch statement. You need to code with nested ifs and ==.
    • It is difficult to store data externally, especially if you add or delete possibilites and need to update existing databases.
    • public class Vegetable {
        protected Vegetable () { /* constructor has no fields to initialise */ }
        public static final Vegetable unknown  = new Vegetable();
        public static final Vegetable beet     = new Vegetable();
        public static final Vegetable brocolli = new Vegetable();
        public static final Vegetable carrot   = new Vegetable();
        } // end class Vegetable
      
      public class JuiceBar {
        public void mixIn (Vegetable v) { if (v == Vegetable.brocolli) ... }
        ...
        } // end class JuiceBar
I wrote a proposal to properly build in two types of enumerations into the Java glossary. See "enumerations" in the Bali essay.
event
I wrote an essay on JDK 1.0.2 events for the Java Developer's Journal. I wrote a similar essay on JDK 1.1 events. The essays track the life cycle of an event from creation to cremation. Jonathan Revusky translated the JDK 1.1 essayinto Spanish. Have a look at Richard Baldwin's instructional Baldwin's essays on events or Jan Newmarch's essay. See post.
event loop
You don't code an explicit event loop to read the event queue and dispatch events the way you do in Windows C++ or MacIntosh Pascal. The event loop plumbing is hidden. It does not start up until after your main function terminates!
exception handling
Exceptions let you handle unusual error conditions without cluttering your code with nested ifs after every method call. The basic syntax to handle an exception looks like this:
String myMethod()
{
try
{
return trickyMethod();
}
catch (IOException e) { return null; }
}
The basic Syntax to generate an exception looks like this:
String trickyMethod() throws IOException
{
int result = readAnotherChar();
if ( result < 0 ) throw new IOException("bad data");
return result;
}
Peter Haggar has written a most excellent tutorial on exceptions.
exemplar
This is James Coplien's term from C++ for an object used as a model to construct other objects. Objects that implement clone of the Cloneable interface can be cloned from an existing exemplar object.
exit
System.exit(int retcode) is a method to immediately terminate your application. Presumably the operating system will tidy up after you and dispose of all the native GUI resources you were using. Ironically programs don't even start processing events until the main routine has exited via return -- not via System.exit. System.exit shuts down all the event processing.
Expert's Exchange
Help and expert consulting for free.
expose
If a window is removed, which reveals one buried underneath it, we say the buried window is now "exposed". Typically this would result in the exposed window's paint routine being called. Sometimes the word uncover is used. See obscure.
ExpressO
a server CGI womb in which to run Java servlets. See servlet.
extend
When you derive a class from a base class we say the derived subclass extends the base class. An interface can also extend another interface. See also implement.
external modem
External modems come in their own small case with winking lights. The advantages over internal modems are:
  1. They are easier to troubleshoot.
  2. They can be used on any brand of computer.
  3. If they get into a snit a freeze up you can reset them without having to turn your whole computer off.
  4. They do not take up a slot inside your computer.
See internal.
extranet
A network of companies sharing proprietary information over the Internet.




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/jglosse.html