Java Glossary

Last updated by Roedy Green ©1996-1999 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 International
They provide a free copy of Together/J which provides a combined text editor/UML editor.
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.

Object-Oriented Software Construction
Bertrand Meyer's classic text on object-oriented programming. This is the best-written computer textbook on any subject I have yet encountered. If you ever plan to write a book, look at this to see how it should be done. He uses the Eiffel language for his examples. This could be confusing if you don't already have little Java under your belt. This is not a book on coding, but rather on the general object-oriented principles behind the languages.
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.
octal
Base 8 numbers, e.g. 755, made of the digits 0..7 only This is the number system we would have used had we eight fingers instead of ten. You can display in octal using code like this: You can convert an octal String to internal binary like this: Since the computer exclusively uses binary internally (possibly excluding BigDecimal), it makes no sense to talk about converting an int from octal to decimal or back, only a String.

In Java you can create octal literals simply by adding a leading zero like this:

Be careful! It is very common to specify an octal literal by mistake in Java and scratch your head for hours trying to figure out the problem. See Literals for more details.

The computer chip works internally in binary (base 2 numbers), with numbers made only of the digits 0 and 1, low voltage/high voltage. Binary numbers are somewhat bulky to write out, so they are usually written in base 16, hex, but sometimes in base 8, octal, e.g. the unix CHMOD command. It is very easy to convert octal to binary and visa versa using the following table. For example, the octal number 750 is 111101000 in binary. Converting between decimal and octal is more difficult. You must do successive divisions and moduluses by 10 or 8.
DecimalOctalBinary
00000
11001
22010
33001
44100
55101
66110
77111
See the Learn To Count Applet to sharpen your intuition on how binary, hex and octal work. See binary, hex, literal, chmod.

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 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
If you are looking for on-line booksellers, see books. This is about online authoring of 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. See books.
OO
See Object-Oriented.
OpenDoc
A platform-independent method for objects to communicate. OpenDoc stores data on disk in the Bento format. Unfortunately Apple, one of OpenDOC's biggest boosters has dropped support for it. See Bento, CORBA, SOM, OLE.
Opera_logo
Opera
A small fast browser that can run Java via the Java Plug-in using standard <APPLET tags. It can also run any of the Netscape plug-ins without requiring a separate copy of the plug-in for Opera. The tricks to getting Opera to work with the Java Plug-in are: See Java Plug-in.
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. See Jove, GCJ, TowerJ, HotSpot.
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.
ORDBMS
Object-Relational Database Management System. This means a relational database with object extensions, so that objects can be stored in the database, methods can be called directly from the query language, etc. One the advantages of Java is you may not need an object-relational mapping - you may be able to store any serializable object. See Cloudscape, SQL, JDBC.
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.



CMP_home HTML Checked! award
CMP_home Canadian Mind Products You can get an updated copy of this page from http://mindprod.com/jglosso.html The Mining Company's
Focus on Java
Best of the Net Award