Java Glossary

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

Stuck in a frame? Click here to break out.

O

Obfuscate
See shroud.
ObfuscatePro
ObfuscatePro is a Java bytecode obfuscator that allows you to customize the obfuscation by specifying classes to exclude from the obfuscation. For the classes that you wish to exclude, you can specify whether to preserve the method and/or the field names in addition to the class name. This is useful for classes that use RMI and/or localization since the class names and the method names need to be preserved for these items. See shroud, RMI.
Object Oriented
Nerdy term for "good". Object-oriented to Java programmers refers to the way you organise methods in classes that work on the current object. Java supports inheritance and polymorphism via shadowing, overriding and overloading. The big advantage of object oriented programming is the way you can easily create variants of the usual behaviours without cloning code. This makes maintaining the code much easier since when you later want to change something, you need to change it in only one place, not in all the myriad clones.

Here is a an analogy you might use for non-programmers: Computer programs are like instruction manuals to tell the computer what to do. In traditional programs, there is one great book containing all the instructions. In OO programming, in the computer's virtual universe, there is an instruction book attached to every object that tells the computer what it can do with each object and how. All Dalmatians come with two instruction books, a care and feeding of Dalmatatians, and a generic care and feeding of Dogs. The Cocker Spaniels come with a specialised care and feeding of Cocker Spaniels book, and the exact same book on care and feeding of Dogs. The instructions in the specific books can override the general instructions or add to the general instructions in the Dog book.

obscure
When one or component is painted fully or partially on top of another we say it "obscures" the previous object. Some people use the astronomical term "occults". "Cover" is another favourite. The Xlib people make a subtle distinction between "obscure" and "occlude". Occlude refers to the stacking order, whether or not the windows are actually displayed, where obscures implies actual intersection on the screen. However, the Xlib definition contradicts itself, so it may be the other way around. I personally don't like the term "occlusion" because it has the connotation of congealed hair stopping up a drain, or ill fitting dentures rather than simply eclipsing. See expose.
observer
This is a mechanism of links so that components can directly notify each other when something interesting happens. There are typically several observers of one observed object. When something interesting happens in the observed object, it calls notifyObservers which in turn notifies each of the observers by calling their update methods. This is a completely different communication mechanism from creating and posting events, which typically flow only from child to parent. Observable and Observer are interfaces that any class may elect to implement. See design patterns.
obsoft
A program for generating alternate JavaDOC formats.
Occlude
See Obscure.
ODBC
Open DataBase Connectivity is the Microsoft Windows/NT interface to SQL. Bulletproof has written software to allow Java servers to hook into it. See JDBC, SQL.
ODMG
? Something that is supposed to eventually replace this bailing wire JDBC/SQL interface.
OLE
Microsoft's Object Linking and Embedding interface for Windows-95. See COM.
OLTP
Online Transaction Processing. An airline reservation database would be an an example of a an OLTP database. The emphasis is on rapid update, with less emphasis on searching and summarising the entire database. See data warehouse, SQL.
OMG
Object Management Group. The people who created CORBA.
on-line books
In future, authors will compose their books on-line, to be available the instant they are penned. You will be able to make comments, suggestions and ask questions, much the way you might encourage a sidewalk artist. You will pay a subpenny royalty per view. I have written a more detailed proposal on the benefits to authors and book publishers. See Journal Of Electronic Publishing.
OO
See Object Oriented.
OpenDoc
A platform-independent method for objects to communicate. OpenDoc stores data on disk in the Bento format. See Bento, CORBA, SOM, OLE.
operator overloading
Java does not let you overload operators with new meaning, e.g. to define + for the Complex class. Neither does it allow you to add your own new operators e.g. -> for input and <- for output. However Andre van Delft of Delftware has invented a preprocessor that lets you add new operators of the form .< .<. and <. See JFront.
optimisation
Making programs run faster and/or in less RAM. There are tools that can work on the *.class files produced by any compiler, such as Dash O and Optimize It!. Ron Yorston has a peephole optimiser project.
OR-Objects
a library of over 200 Java classes for developing Operations Research applications.
ORB
A proprietary Object Request Broker such as IBM's SOM, or Microsoft's OLE. See CORBA, OpenDoc, JacORB, Voyager.
ORGASM
ORiGinal ASSeMbler. Roedy Green's postfix assembler and floating point library for the Intel 8087 numeric co-processor and the follow on chips that emulate it, part of the BBL Forth compiler. See BBL, SPASM.
OROMatcher
a regular expression matcher that compatible with Perl 5. See regular expressions.
OTOH
Netspeak for On The Other Hand.
outer join
See join.
overload
Having two functions with the same name in the same method, but that differ in the types of their arguments. It is not legal to have two methods of the same name that differ only in their return types. Be careful. The rules for figuring out exactly which version of a method get invoked are baroque. See also override, shadow.
override
To provide a replacement method is a new class for one in the superclass. The superclass too will use your new method in place of its own when dealing with objects of your type, though it will continue to use its own method for objects purely of its own type. Be careful. The rules for figuring out exactly which version of a method get invoked are baroque. See also overload, shadow.



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