Java Glossary

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

H

HackSaw
InnovVal System Solutions' library of code for writing TCP/IP applications including: FTP file uploading and downloading, SMTP and POP3 email, HTTP file and header retrieval, USENET postings, file attachments using MIME and UU encoding/decoding and proxy support. $230 US.
handle
To do whatever action is necessary to deal with an event. An event handler decides what kind of event has come in, and calls the corresponding more specific action routine to handle the event. MacIntosh programmers use the term handle to mean a pointer to a pointer. This allows the thing pointed to be moved, and all references are thereby automatically forwarded to the new location. Java pointers (called references) are usually implemented as handles. See reference, event.
handle body
See peer.
HashJava
a source code shrouder. See shroud.
Hashtable
For Strings, Hashtables work pretty much as you would expect if you are familiar with hashing. The only catch is remembering to import java.util.Hashtable (with a small t in table). Here is how you use a Hashtable:
import java.util.Hashtable;
...
// create a new Hashtable
Hashtable h = new Hashtable(149 /* capacity */, 0.75f /* loadfactor */);

// add some key/value pairs to the Hashtable
h.put("WA","Washington");
h.put("NY","New York");
h.put("RI","Rhode Island");
h.put("BC","British Columbia");

// look up a key in the Hashtable
String key = "NY";
String stateName = (String) h.get(key);
System.out.println(stateName); // prints "New York"

// enumerate all the contents of the hashtable
Enumeration keys = h.keys();
while( keys.hasMoreElements() )

{
key = (String)keys.nextElement();
stateName = (String)h.get(key);
System.out.println(key + " " + stateName);
// prints lines of the form NY New York
// in effectively random order.
} // end while
Some fine points:
Hayes
Hayes was one of the first companies to make modems for the XT/AT. Since there are no official standards on how to make your modem dial a number, hang up, etc. most modem manufacturers copy one of the Hayes models. The phrase "Hayes compatible" is a give-away that the modem is NOT compatible with any particular Hayes model. It means they concocted a hodgepodge of commands from various Hayes models with a dollop of extra features of their own. Hayes modems are high quality, and by definition do not have compatibility problems. The only thing the matter with them is they are outrageously priced. See AT command set.
HeapSort
Williams and Floyd's sorting algorithm that models employees jockeying for position on the corporate ladder. Another analogy is a tennis tournament where winners of low level contests (comparing bigness of key) compete at the next higher level. In Java, HeapSort is faster than QuickSort but slower than RadixSort. HeapSort is unstable in that it sometimes disturbs the order of existing records with equal keys. You can turn it into a stable sort by appending the existing order as a minor key. Free source code is available from Roedy Green at Canadian Mind Products. To learn more about HeapSort's behaviour see Eppstein's paper. HeapSort is particularly fast if the data are already almost sorted. The source code is available both in prettified HTML or download. See Sort, RadixSort, QuickSort.
Heatherington
Hayes patented method of putting a pause before and after the +++ string used to gain a modem's attention. The required pause helps avoid inadvertently attracting the modem's attention when you send files (such as this one) containing the string +++.
HelloWorld
HelloWorld is usually the first Java program a novice writes.
public class HelloWorld
{
public static main(String[] args)
{
System.out.println("Hello World");
} // end main
} // end class HelloWorld
To compile it, type:
javac HelloWorld.java
and later run it with:
java HelloWorld
If this does not work, here are some likely problem areas:
  1. The name of the source file must be HelloWorld.java, precisely, and the name of the public class in your source must be HelloWorld, precisely, including case.
  2. You specify the .java extension to compile, but leave the .class extension off to execute. How logical!
  3. You may not specify the fully qualified drive and path: e.g.

  4. java C:\TEMP\HelloWorld
    is not permitted.
  5. As a corollary, make sure the current directory is where the HelloWorld.class file is.
  6. You have to get the case exactly correct. e.g.

  7. java Helloworld
    is not permitted.
  8. make sure your classpath looks something like this:

    CLASSPATH=.;D:\Jdk1.1.5\lib\classes.zip
    Note the . to include the current directory. See CLASSPATH for more details.
  9. If your HelloWorld is an applet rather than an application, you need some HTML commands to invoke it. You don't just load it in your browser as if it were a web page. See Applet for more details on composing that HTML.
If you have a more complex program, using a package, the name of the class you put on the java command line would be myPackage.myClass. myClass.class needs to live in a directory called C:\myPackage. The current directory needs to be C:\ for Java to be able to find the class. The full truth is a little more complex, e.g. you can have zip and JAR files too.

See java.exe for a detailed discussion of how Java.exe combines package names, class names and the CLASSPATH to find the classes.

help
text the user can request to help her understand a program. Context sensitive help tries to guess just what questions the user would be asking herself at that particular stage of the program. Java documentation and help tends to be based on HTML files.
Hermit Crab
A variable length record manager for Java, something not so ambitious as SQL, but more efficient.
hexadecimal
Base 16 numbers, e.g. 08Cf. You can display in any base using code like this: String hex = Integer.toString(i, 16);
hide
make temporarily invisible. "hide" is deprecated. With JDK 1.1 you are supposed to use setVisible(false); instead. hide is also used to describe what one window does to another when it is painted over top of it. See setVisible, show.
HomeSite
an HTML authoring tool for Windows-95 and NT. See Cold Fusion.
Hook
In the old days, the telephone mouthpiece rested on hook-shaped cradle when it was not in use. To use the phone, you lifted the mouthpiece "off-hook" which gave you a dial tone. To stop using the phone, you placed it back "on-hook". We still use these terms for the electrical modem equivalents.
HoseMocha
uses a simple trick to confuse the Mocha reverse engineering tool by inserting an unreachable bogus opcode. See shroud.
Hot Java
a web browser from Sun, written in Java, that competes with Netscape. Its main advantage is that it is the first out to support new features of Java.
HotSpot
Sun's JIT coming real soon now. Code runs first in interpreted mode and is then analyzed and compiled optimized to target platform. It aggressively inlines frequently used methods, then uses traditional optimisation techniques on the larger code chunks. The HotSpot compiler builds heavily on work done in a PhD thesis by Henry Massalin. The thesis is the mother of all self-modifying code. You not only optimise, you continuously re-optimise. See JIT.
HST
Before the invention of the CCITT V.32 modem standards for 9600 BPS modems, US Robotics invented a proprietary protocol that runs even faster at 14,400 BPS. It became popular on US bulletin board system, but never caught on outside the USA. It is gradually being replaced by V.32
HTML
HyperText Markup Language. A platform independent technique of distributing formatted documents via the web. The bold, italic etc. in the document you are reading now (presumably on a web browser), is encoded by embedding tags like <B> and <I>. This markup scheme works on any brand of computer and allows web sites to send all information in a standard way, without having to worry about what brand of computer the recipient has, or what software she uses. I have composed an ASCII format cheat sheet to help you compose HTML. It shows you how to create all the special characters like:
< > & " ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ ÷ ×
and all the accented characters like:
À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß
à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ.
Unfortunately there is no symbol to get you a trademark TM. The &eacute; style abbreviations are not kosher in HTML3.2. They are not part of the HTML 3.2 spec, but Netscape and Internet Explorer still support them.
Gerald Oskoboiny has created an online validator for the various HTML dialects. It is sort of a Lint for HTML. It can ensure your HTML will work properly on browsers other than the one you tested it on. I use CSE HTMLValidator 3.0 to check my web pages offline. See the list of special characters and the bare bones html guide. If you writing Java source code for an applet, you can persuade the browser you are running under to display an HTML page with: java.net.URL url = new java.net.URL(<fileName>); If you are writing an application you are SOL.
getAppletContext().showDocument(url);

If you are an application, there is no standard HTML rendering class you can use, though BISS-AWT has some primitive HTML rendering code. See DTD, css, SSI, Koala, WebTwin.
HTTP
A protocol used on the Internet by web browsers to transport text and graphics. It is focusses on grabbing a page at a time, rather setting up a session.
HyperProf
a profile viewer and class browser that uses a hyperbolic plane to place the class tree.
Hz
Hertz, cycles per second. Modems sing to each other, so sometimes you will see references to the frequencies of the tones they sing.



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