Java Glossary

Last updated 1998 June 25 by Roedy Green ©1996-1998 Canadian Mind Products.

Stuck in a frame? Click here to break out.

G

Galahad
A combination off-line/on-line newsreader, mailer, web browser. It lets you access both BIX.com and the Internet. It supports picons.
Gamelan
A web site that will help you find other Java-related material on the web.
Gandalf Supermodem
Gandalf, a Canadian company, was the first to produce a 9600 BPS modem that could work on dial-up phone lines. The modem contained more computing horsepower than most modern computers. It worked by playing chords of tones for 1/40 second. Averaging the signal over such a long time eliminated most of the effects of static. At the receiving end, Fast Fourier transforms analysed the chords back into the component tones. Most modern high speed modems have started with this idea and refined it. The ingenuity of modern modems such as the Telebit Trailblazer is extraordinary. The only problem is, all these schemes are proprietary, so different brands of modems cannot talk to each other.
garbage collection
In Java you explicitly create new objects with new, but you don't need to explicitly free them. From time to time the garbage collector chases all the references in all the objects to find all the "live" objects. Anything that can't be reached is "dead" and its space in reclaimed in one fell swoop. To nearly everyone's great surprise, the more dead objects there are, the more efficient automatic garbage collection becomes relative to the explicit schemes used in C++. Unfortunately, automatic garbage collection is not as efficient in its use of RAM as explicit freeing because dead objects are not immediately detected. Automatic garbage collection has the big advantage you can't screw it up. With explicit freeing, you can accidentally free an object while some other reference is still pointing to it. Or you can forget to free it, and eventually clog memory with unused objects. There is nothing to stop you from writing your own explicit free allocators in Java that recycle objects in preference to creating new ones. These sorts of custom allocator would work well when objects are a standard size, when you don't build complex references to these objects, when the objects are short lived, when RAM is tight, and/or when there are large numbers of live objects at any one time. See the Demon links.
Gates, William
The CEO of Microsoft. see J++.
Gembuilder
a tool for managing JavaBeans. See JavaBeans, Java Studio.
genericity
C++ has templates. You instantiate versions of classes using some type as a parameter, e.g. a stack of ints and or a stack of floats or a stack of objects. In most other languages from Sather to Ada, templating is called genericity or parameterised types. Java does not yet have an equivalent. This issue of whether it should is hotly debated.
gespenstering
A technique of comparing two ram absolute image snapshots of an application in flight to generate the relocation exe header information. This technique allows the compiler to ignore the complications of relative addresses and pretend they are all absolute. It can also be used to get around crude copy protection schemes. The term comes from the German word for ghost, since one ram image is sort of ghostly shadow of the other.
GetRight GetRight
Headlight Software's program for downloading files by HTTP or FTP that will queue files to download in the background and resume interrupted connections. There are Windows/NT and Java versions of it.
GhostScript
A free software PostScript rendering engine. Can also generate PDF files. See PostScript.
GIF
A file format Java uses primarily for icons. Such files usually have a *.gif extension. GIF format was originated by Compuserve, who have done some sabre rattling demanding people stop using the format, however no one takes them seriously. Animated GIFs contain several images that are displayed in rotation to create a simple repetitive animation. Java does not yet have support for animated GIFs. You have to take the GIFs apart yourself and animate them manually. See JPEG, image.
GIS
Geographic Information System. A database system for storing maps. You can create maps with various subsets of the information and various scales. The software automatically places labelling information so as not to overlap other labelling. See JShape.
global optimisation
Looking for an optimal solution by being willing to allow everything to change a little. It applies to single programs, groups of programs, or even groups of people. The global optimum is not necessarily the local optimum for each subsystem, but on average, it is better than if each subsystem sought its own purely local optimum.
global variable
Java does not support global, universally accessible variables. You can get the same sorts of effects with classes that have static variables, static {.. } style initialisation of static variables, or sometimes constants in the form of static final variables inside interfaces. Java avoids polluting the namespace by making you refer to such "globals" by preceding them with a class name, e.g. Math.PI, or MyClass.useCount, unless of course your class inherits or implements the class or interface that defines the "global".
Glossaries
If you can't find a word here, try one of these other glossaries.
GNU
A huge library of free source code that is a rich mine for modeling new Java classes.
GNUs
An advanced newsreader.
GoodHost
GoodHost is a mail server suite includes POP3, IMAP4, LMTP and SMTP protocol servers, and is based on an RDBMS message store which includes support for 8 RDBMS's including Oracle and Oracle's thin JDBC driver.
gopher
Internet speak for a character based program that lets you browse the directory trees of remote computers.
Gotchas
A gotcha is a nasty surprise in the Java language or the standard libraries. Some might call them bugs, some features. I have written an essay on them.
Graphics Object
The Graphics class is abstract. It is just a collection of specifications for low-level drawing methods. The graphics object also contains a reference to the area of ram where the bit image will be constructed and it also contains the current clipping region. It is used for all types of painting including placing components, canvas drawing, and laying out text.
GregorianCalendar
Sun's replacement for the brain-damaged and now deprecated Date class. GregorianCalendar needs both time and date set before it will function properly, even for date-only functions.
GridBagLayout
The most complicated layout manager, that gives you fine control over placement of subcomponents. You position them on a rough grid and the layout manager snuggles them up to each other. You can specify margins for each component, and which side/corner of its cell it should squeeze up to. The most puzzling parameter is weightx (weighty) which controls which cells grow when the entire layout acquires more real estate. 0 means no growth. The growth algorithm works like this. First it searches each column for the biggest desired growth. This becomes the desired growth for that column. Then the extra real estate apprortioned to the colmuns relative to the growth weights. The growth weights need not be normalised percentages, but they could be. weighty works in a similar way.

If your GridBagLayout does not work, here are some things to check:

See Layout.
GroupLens
A way of presenting to you the pick of the crop of newsgroup offerings based on the voting patterns of other people who have voted like you in the past.
GUI
Graphical User Interface. The windowing scheme such as X-Windows, Windows-95 or Mac OS that user interacts with using a mouse, keyboard and screen.
GZIP
A file compressed with one of the unpatented ZLIB algorithms. Unlike a ZIP or JAR file, a GZIP file is a single stream, not broken up into members. You can create or read them with the classes in java.util.zip. GZIPOutputStream may often be combined with an ObjectOutputStream to compress serialised objects. See JAR, ZIP.



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