Java Glossary

Last updated 1998 July 14 by Roedy Green ©1996-1998 Canadian Mind Products.

Stuck in a frame? Click here to break out.

D

database
See SQL, JDBC
database engine
The program that controls an SQL database in a single user database. See database server.
database server
The program that controls an SQL database and allows it to be used across a LAN or across the Internet. See database engine.
DataTableJ
A grid component JavaBean. $189. It has brothers: CalendarJ, TreeViewJ and WinJ.
Date
See BigDate
data warehouse
A large database filled with data infrequently updated. The emphasis is on tools for efficiently searching and summarising the the entire database. See OLTP, SQL.
dBASE
The original database for the PC. The file formats are still supported by Foxbase and Borland dBase. It has largely been replaced by SQL, which has no standard file format. See xBaseJ.
dbAnywhere
Symantec's software to allow a client program to run with a single set of JDBC drivers and simulaneously access SQL databases from several different vendors. dbAnywhere also allows ordinary Java-enabled web browsers with no installed JDBC drivers to access an SQL database. The dbAnywhere client JDBC drivers are pure Java, and thus can be downloaded without violating applet security. It is a bitch to install because there are so many errors in the readme files. See my essay on how to do it with Visual Café Pro JDK 1.1 or Visual Cafe Database Developement Edition 2.0. See Symantec, three tier, Binder, Link, ProjLink, ListLink, List, Projection, RelationView, MultiView, session, SQL, connection.
DEC
Digital Equipment Corporation. The 64-bit Alpha chip supports Digital Unix, OpenVMS and NT. The CISC VAX supports OpenVMS. The StrongARM chip is a small ARM RISC processor for consumer devices and smart phones.
declaration
A declaration of a class lists its instance and class variables and methods. A declaration inside a method tells the type of a local variable.
decompiler
A decompiler takes class files right back to Java source. A disassembler converts them back to something like assembler code for the JVM. links. See disassembler, Jad, WingDis, SourceAgain.
decorator
See design patterns.
delegate
One way to handle polymorphism is for a method to fob the job off on one of several objects -- each of which has either implemented its version of the required function via extending a class or implementing an interface. To fake a callback you pass an object as a parameter that knows how to do the callback method. See polymorphism, callback.
deliver
the process of figuring out which component an event is destined for, e.g. analysing the x,y co-ordinates of a mouse click to figure out in which panel and in which component in the panel the user clicked the mouse. This process is handled by the native GUI, not the AWT or application code.
Delphi
Borland's Object Pascal based RAD. Borland pioneered the ideas behind JavaBeans pluggable components in Delphi, and implemented them with somewhat more elegance.
deprecated
Deprecated literally means disapproved of, but a more accurate translation would be retired. Deprecated means this method is still usable, but you should not use it. It will gradually be phased out. There is a new method to do the same thing. Deprecated methods are marked with a special comment:
/**
  * @deprecate Please now use newMethod()
  * @see newMethod()
  */
derived class
"derived class" in C++ is "subclass" in Javanese. When a class extends a base class, to derive a new class with all the base's variables and methods, plus some of its own, we call the new class the subclass, and the base class the new class's "superclass". See subclass, superclass, extends, inherits.
design patterns
familiar patterns that keep coming up in coding problems. After zooming in on the nuts and bolts and syntax of Java coding it's a help to zoom out and see ways of "extending" it to bigger problems. There is classic book on Object Oriented program design called Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides. The publisher is Addison Wesley ISBN: 0-201-63361-2. If you purchase it online via this link to Amazon.com I get a 15% commission.

They define design patterns as: descriptions of communicating objects and classes that are customised to solve a general design problem in a particular context. A design pattern names, abstracts, and identifies the key aspects of a common design structure that make it useful for creating a reusable object-oriented design. The design pattern identifies the participating classes and instances, their roles and collaborations, and the distribution of responsibilities. Easy to wrap your mind around, eh? Design Pattern people are in love with the power of abstraction and generality. You might even say they prefer to impress rather than inform. However, somehow you are going to have to learn this stuff, even if only to get into the heads of the guys who designed the AWT. Try starting with the code samples in the Design Patterns book. See Doug Lea's "Implementing Design Patterns in Java" or the command pattern or MVC or R.I.P.MVC Widgets or Peter Mehlitz's lecture or University of Illinois as Urbana-Champaign. Standard patterns include:
Creational Patterns:Abstract Factory, builder, Factory Method, Prototype, Singleton.
Structural Patterns: Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy.
Behavioural Patterns: Chain Of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method and Visitor.
See reframe.

destroy
dispose of any behind the scenes resources this entire applet is using (e.g. inside the native GUI). This does not delete the current application object, but it does dispose of all the children. This is required because the Java garbage collection scheme only can work on its own objects, not those inside the native GUI. See also dispose, remove.
Detect Phase
When two modems first connect they go through a mating dance to decide which protocols they will use at which speed.
digital cash
One of several new schemes of electronic funds transfer that even more efficiently serve the same functions as hard currency, namely:

One way to stimulate your imagination to invent new forms of digital cash is to imagine an alien watching a documentary about human activities. To help get you into the alien frame of mind, imagine that the images have been electronically retouched to erase all the price tags, money, credit cards and replace them with blank white objects or perfectly transparent objects. All the aliens see are the physical actions. They don't see or understand money. The aliens speculate on motivations for the various human activities. If nothing else, you may get a chuckle. I wrote a little scenario on BIX.com in technology/social;5074 about how aliens might look at the social rituals involved in buying fruits and vegetables.

digital signatures
A way of digitally signing a file or program to ensure it has not been tampered with and that the author is the author claimed. See my essay based on Steven C. Den Beste's work. See signed applets.
dimension
the width and height of something. See point.
Dippybird
a collection of Java utility classes and documentation.
Dis
AT&T/Lucent's equivalent of the JVM to run the Limbo language. See Inferno, Limbo, Styx, Plan 9.
disable
Grey out so that the button is still visible, but not active.
disassemble
To reverse engineer a class file to get back to human-readable reverse polish sort of Java Forth/Assembler source with comments and parameter and temporary variable names lost. Going all the way back to Java source is called a reverse compiler. javap -c will do a crude job of this. Javaworld did an article on it around 1997 June. See Shawn Silverman's D-Java disassembler (has trouble with long filenames), Kimera Online Disassembler (generates traditional assembler format), JavaDis (now called WingDis), Mocha (the author died), JCD (Java Class Disassembler), Macho, SourceAgain, Jad, WingDis (generates fairly accurate Java source).
dispatch
The entire marshalling process surrounding a remote procedure call. Also the process of delivering an event to a component. See post, deliver, process.
Discovery
Digita/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.
dispose
dispose of any behind the scenes peer resources this component is using (e.g. inside the native GUI). Java can automatically garbage collect stranded objects created by Java, but it needs this help arranging to recycle resources inside the brain-damaged native GUI. This does not delete the current object. E.g. dispose for a panel would remove the menu bar. In particular, it is wise to arrange to dispose of any unneeded graphics objects you obtained with getGraphics. Dispose removes all the appendages to the current component. Does it dispose children?? See also remove, destroy.
distributed objects
communication between objects living in different computers, e.g. the Tempest system. See CORBA, RMI, serialisation.
division
See modulus.
DNS
Domain Name Service. The name lookup the Internet uses to convert from alphabetic names such as oberon.ark.com to 32-bit binary IP addresses used on packet routing. Such IP addresses are displayed for humans as a dotted quad with four numbers 0..255, e.g. as 204.50.21.34. In Windows 95 there is an auxilliary DNS helper file called C:\WINDOWS\HOSTS. that lists pairs of names and dotted quads. You can use this file for commonly looked up names, or for local names, e.g. names of workstations on the LAN. You can invoke DNS lookup to convert the name to the dotted quad IP address by:
String dottedQuad = InetAddress.getByName("mindprod.com").getHostAddress();
The InetAddress class also lets you work backwards from the dotted quad to get the host name.
String hostname = InetAddress.getAllByName("199.93.4.15").getHostName();
For a LAN, you can assign IP addresses such as 192.168.0.1, 192.168.0.2 to each station since these are never seen on the Internet. See localhost, TCP/IP.
DocFather
A cross-platform Winhelp written in pure Java that provides an index to a set of HTML documents.
Documentation that is essential
domain
In SQL, domain has a most unlikely meaning -- alias. The names of all the various types of data are so nonstandard, it is difficult to write portable SQL. So you make up your own names for the various types and define them as aliases for whatever the term of the month is for them on a particular database. Unfortunately not even the term DOMAIN is standard. The Sybase people call them DATATYPES.
double buffering
a technique for being able to refresh the screen faster by using prerasterised off-screen images.
DSK
Dvorak Standard Keyboard -- a keyboard layout that is easier than QWERTY on the wrist muscles, and gives about 10% faster speed to good typists, considerably better for the less dexterous. The layout of my Dvorak keyboard looks like this:
',.PYFGCRL/=
AOEUIDHTNS-
;QJKXBMWVZ
Northgate keyboards support DSK by flipping a DIP switch. Microsoft Natural keyboards reputedly also do so, but I could not find the switch. Perhaps they do it in software. Windows-95 supports the DSK layout in software with any keyboard. If you flip to DSK, you must go cold turkey. Any continued QWERTY touch typing will destroy your fledgling DSK finger reflexes. To get around the problem, in a pinch, I type QWERTY with four fingers. During the switchover, you can't touch-type quickly in either system. For more information see my essay on DSK.
DTD
Document Type Definition. A carefully structured document that formally defines the syntax of one of the HTML variants using an BNF variant notation. For some reason, the academics who define HTML, think this document, intended for computers, is the way ordinary humans should learn about HTML. A DTD is pretty well incomprehensible until you already fully understand HTML, or have a background in computer language theory. See HTML.
download
Receive a file. When you send files to BIX, a website or BBS system this is called uploading and when you receive files this is called downloading. You use the following mnemonic: think of BIX as something high and mighty perched on a glass hill, as is the fairy tale.
Why don't we call it send and receive like sensible people do? send and receive are relative verbs. If I entered a send command, does this mean I plan to send something to BIX, or does it mean I want BIX to send something to me? If I say upload there is no ambiguity, just bafflement until you get used to the terminology. In the case one person calls another, the caller uploads (sends) and downloads (receives) files.
drag queen cable
Some printers, Hewlett Packard in particular present female serial interfaces, that look as if they are mimicking DCE modems. However at heart they are actually male DTE terminals mimicking the computer side of the interface. To attach a computer to such a device you need a cable with a male connector on one end and a female on the other, but with null modem-like twists. This cable at first glance looks like a standard modem cable, but inside it is perverse.
DTE
Data Terminal Equipment This is the technical term for a computer or anything that pretends to be a computer. DTEs normally present male connectors. Some serial printers pretend to be modems (DCE). Others pretend to be computers (DTE).
DTR
DTR stands for Data Terminal Ready. It is pin 20 of the RS-232C interface between your computer and your modem. It is the cause of 75% of the trouble people have with their modems. The computer places a low voltage on this pin whenever it wants your modem to hang up the phone. Strangely, most modems refuse to pay attention to DTR unless coaxed with special initialization commands or switch settings. Some ignore DTR no matter what you do. Those modems insist on a special "~~~ATH0" command to hang them up that works about 50% of the time.
DUN
Dial Up Networking. Microsoft's term for the software in Windows 95 that attaches a PC to the Internet via a dial up SLIP or PPP link.
Dunce
Dunce is a Windows 95 program that automatically launches your favourite suite of online tools (e.g. Netscape, WinFTP) whenever you fire up the dialer to your ISP and automatically shuts them down when you logoff. It also optionally cuts out various unwanted confirm dialogs. It also automatically invokes the dialer when you fire up a program that needs it. It is very configurable. Download Dunce.
Dvorak
A rude epithet to describe an ignorant Java basher. Also a keyboard layout more efficient than QWERTY sometimes called DSK (Dvorak Standard Keyboard). See DSK.
Dynamic Class Loading
You can dynamically load a class, and create objects of that class just by knowing its name as a String. Typically you would cast the objects created to some interface so that you could invoke methods on it.
Class c = Class.forName("mypackage.Myclass");
Thing t = (Thing) c.newInstance();
t.doSomething();



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