Java Glossary

Last updated by Roedy Green ©1996-1999 Canadian Mind Products.

Stuck in a frame? Click here to break out.

B

Bali
Bali is a proposed superset of Java. It takes ideas from various other languages. The intent is to create a language for application programmers that is terser, easier to read and maintain than standard Java. Have a look at this essay to see some of the ideas that might be incorporated.
Balitools
A Java authoring tool that focuses bypassing the colour-rendering bugs in various browsers, and other cosmetics.
BAMBA
IBM's all-Java way of transmitting streaming audio and video over the web.
bar codes
Parallel long/short/missing lines, such as the UPC grocery product labels, that encode product ids or other information. They can be printed with ordinary ink, with printers or offset presses. They can be read with various laser or LED scanners. See the PeerNet Linear Barcode Bean to create a variety of barcode styles in Java.
base class
"base class" in C++ is "superclass" 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 derived, subclass, superclass, extends, inherits.
Baud
measures how fast a modem changes the sounds it uses to encode information to another modem. Since it can encode several bits of information per sound, the Baud rate is usually much slower than the BPS rate. See the essay on RS232C for a fuller explanation.
BBS
Bulletin Board System. A service, usually free, you can phone with your modem and leave public or private messages for other callers. Usually only one person at a time can use a BBS. Most BBSes also let you download program files. Globally accessible websites have largely replaced the BBS.
beam
Apple Newton computers can transfer information between them without needing a wire joining them. They send infrared pulses. The two machines must be with in a meter of each other for this to work well. You then might say "Please beam me the project Polaris file." Beam is a reference to the Star Trek transporter beam. The term is gradually coming to be used for other types of electronic file transfer.
Bean Dipping
IBM's technique of adding features such as password security, charting or version control to existing JavaBeans.
Bean Shell
A platform independent scripting language written in Java.
BeanBox
Sun's tool for testing out a JavaBean to see if it conforms with the conventions. When you go to JavaSoft to download it the instructions say to click a button labeled Download Software, but it is actually labelled continue. See JavaBean, Jar file. When testing a bean, think carefully about the CLASSPATH you use. You don't want to include anything that users of the bean might not have on their CLASSPATH. The bean should be self-contained, bringing all the classes its needs with it in the surrounding jar file. When the BeanBox complains about a component, it may be that the real problem lies in something that component uses.
BeanInfo
A BeanInfo class describes the properties of a JavaBean, and provides an icon for it. Writing a BeanInfo is pretty easy. See this example heavily-commented Date_CABeanInfo.java source code. In the comments are hidden many useful hints. Studying the example code in the BeanBox is more helpful than reading the JavaBean spec. For example, study the MoleculeEditor to provide a list of allowable choices for a String property. For more complex PropertyEditors based on implementing the java.beans.PropertyEditor interface or extending the PropertyEditorSupport class see: BDK\APIS\SUN\BEANS\EDITORS.
The key thing to understand is that there is no glue between the JavaBean and the BeanInfo class other than the naming convention. If your Bean is called Jim then the corresponding BeanInfo class has to be called JimBeanInfo and has to be stored in the same directory. There is glue in the other direction, via the bean's beanClass passed to the various PropertyDescriptor constructors in the BeanInfo code. Normally JavaBeans and their corresponding BeanInfo classes are bundled up together with other beans and dependent classes in a jar file. See JavaBean, Jar File, Manifest, BeanBox.
Beans
See JavaBeans
beautifier
a program that tidies up Java source code to some standard format. Marc W.F. Meurrens maintains a list of code beautifiers and pretty-printers. I am pretty happy with SlickEdit since it is integrated into the editor, where it is convenient to type quickly/sloppily and beautify frequently. I does not rigidly follow Sun's conventions, but it is quite close. See pretty-printer, coding standards, CBVan, SlickEdit, Emacs, PCGrasp, Percolator, VasJava2HTML.
beep
Java does not have a built-in set of sounds. It ignores '\a' in console output, though you can use \007. In JDK 1.1 You can make a simple beep with java.awt.Toolkit.getDefaultToolkit().beep(). I have seen reports that beep does not work properly on some platforms. In JDK 1.0.2 you can use System.out.print("\007"); System.out.flush(); You can also play au files. See AU.
Bell
AT&T created a series of modem standards used in the USA and Canada. The Bell 103 standard is used for North American 300 BPS modems and 212A is used for 1200 BPS modems. The 212A is similar to but incompatible with the European CCITT V.22 standard.
benchmark
Comparing the speeds of different ways of doing the same thing using different algorithms, different hardware, or different compilers.
Bento
The file format for persistent objects used by OpenDoc.
between
When an SQL or Java programmer asks for a number between 1 and 10, he includes the end points 1 and 10 as valid responses. When talking about a random number between 0.0 and 1.0, 0 is included but not 1. How logical! In normal English, sometimes the word between excludes one or both of the end points. See random number.
bias
an amount added to a number, usually to make all negative numbers positive.
big-endian
See endian
BigDate
Canadian Mind Products replacement for the notorious standard Date class. BigDate converts back and forth between Julian (days since 1970 Jan 01) and Gregorian (yyyy mm dd) forms. BigDate handles dates from 999,999 BC to 999,999 AD. It handles the following calendar anomalies: Download source. BigDate differs from Sun's Date in that it handles dates prior to 1970, and it uses Julian day numbers relative to 1970 Jan 01 rather than millisecond timestamps. BigDate uses 4, 5 or 6 digit years rather than 2-digit years like Sun's Date. Month 01=January as is traditional, unlike Sun's Date which uses 00=Jan. Similarly, the first of the month is 01 not 00 as in Sun's Date class. For example here is how you could compute the day after a given date:
BigDate g = new BigDate (yyyy, mm, dd + 1, BigDate.NORMALIZE);
yyyy = g.getYYYY();
mm = g.getMM();
dd = g.getDD();
This second way is more verbose, but it does a check that yyyy, mm, dd are valid and executes slightly faster.
BigDate g = new BigDate (yyyy, mm, dd);
g.setOrdinal(g.getOrdinal()+1);
yyyy = g.getYYYY();
mm = g.getMM();
dd = g.getDD();
There are many more examples in the TestDate.java class that comes with BigDate.
binary
Base two numbers, made up only of the digits zero and one. Internally this in what computer chips use to calculate, where a high voltage represents 1 and a low voltage 0. With one wire, you have only two possibilities low and high, 0 and 1. With two wires you can represent 4 possibilities, 00, 01, 10, 11. With three wires you can represent 8 possibilities, 000, 001, 010, 011, 100, 101, 110, 111. You can assign these possibilities to the integers: 0=000, 1=001, 2=010, 3=011, 4=100, 5=101, 6=110, 7=111. The scheme works much like decimal arithmetic. The column values are : ... 64 32 16 8 4 2 1 (i.e. 2^n). Thus 1011 is 1*8 + 0*4 + 2*1 + 1*1 = 11 -- decimal eleven.

Binary is rather bulky to write out, so instead it is often written in terser hexadecimal (hex) or sometimes octal. Unfortunately there is no way in Java to include binary literals in programs other that by encoding them in hex or the more old fashioned octal.

When you realise that 255 = 1111_1111 in binary, 1024 = 100_0000_0000 and 65535 = 1111_1111_1111_1111, you might guess why these numbers tend to come up so often in computing.

See the Learn To Count Applet to sharpen your intuition on how binary, hex and octal work. You should be able to deduce the simple binary negation, addition and subtraction rules that the computer circuitry uses. See octal, hexadecimal, literal.

binary formats
DataOutputStream puts out Java data in big-endian internal binary format. Have a detailed look at these formats in this essay. In contrast PrintStream.println and PrintStream.print put out data as human-readable 8-bit ASCII characters. See primitive, endian, println format.
Binder
In dbAnywhere, a Binder is a an object used to glue a GUI object to the RelationView of the SQL database. It allows the database to inform the GUI when the value has changed and vice versa. ProjBinders deal with a single column. ListBinders deal with groups of columns. ProjBinders allow you to get/set the data in the SQL column in any conceivable format. ProjBinder looks after conversion to whatever format that SQL uses. See ListLink, ProjLink, dbAnywhere.
BinProlog
a Prolog implementation written in Java.
bis
as in V.22 bis modem standard. Bis is a French word meaning "encore" or "alternate". People shout "bis" at the end of an artist's performance to demand more. We might translate it as "revised" or "plus" to indicate a new, improved, expanded modem standard. See also V.22 bis, V.32 bis and V.42 bis.
BISS-AWT
Peter C. Mehlitz of BISS has done some remarkable things with the AWT. The demo I saw at the Java Colorado Software Summit Conference was very impressive. There are three parts to the BISS package:
  1. It's a widget framework of portable (standard AWT based) lightweights that completely coexist with other Components. This is in the package "biss.awt". These include rich text components and layout managers. It works much the way Swing does. Both BISS-AWT and JFC-Swing are just another "add-on" on top of a plain AWT.
  2. It contains a small (but constantly enhanced) IDE, which also serves as an example of how to use the widgets. The package "biss.jde", mainly consists of a class browser and a graphical layout tool.
  3. They re-implemented java.awt (currently with a native layer for kaffe / Xlib), with the "high level" java.awt widgets built on top of biss.awt (sounds somewhat recursive, but makes a very small code base).
bit
Modems send information in a serial stream of zeros and ones. Each of these zeros or ones is called a bit. Eight bits is enough to encode one character.
BizTone
A scheme for renting Java software applications. They are automatically delivered and kept up-to-date over the Internet.
block
In Pascal blocks are subpieces of a method that have local variables. Java for loops are considered new scope blocks where you can initialise one local variable in the for loop. You can also define a block in Java just by enclosing the code in { }. Local variables defined inside { } are not known outside the block, though they are allocated when the method starts, not when the block is entered. In other words there is no speed penalty for declaring a local variable inside a loop. A new stack frame is not started for each block. Smalltalk programmers us the term "block" to mean a little fragment of code that you can store in a variable or pass as a parameter. Even if statements can use blocks for the ifTrue and ifFalse actions. Blocks also provide a slick way of invoking an enumeration of a collection, running some code on each element of a set. In contrast to Smalltalk, Java has a rather verbose way for requesting a piece of code be executed on each element of a collection using the Enumeration class.

The term has quite a different used in datacommunications: Modern file transfer protocols send data in blocks, or packets, rather than just a byte at a time. Usually, the larger the block size the more efficient the file transfer. This is because most file transfer protocols wait for an acknowledgement from the other end after each block is sent, so larger blocks mean fewer stops for handshaking. However having blocks too big slows things down. This is because a single error means the whole block must be re-transmitted. Not only do the blocks take longer to retransmit, there is an increased change for error in each block.

Blowfish
A fast, compact, unpatented, public domain, block encryption method invented by Bruce Schneier. The algorithm allows for a variable length key up to 448 bits. It could be used in conjuction with a slower public key method. Blowfish keys are exchanged via public key method, then the bulk of the encryption is done via Blowfish. See DES.
Bluebird
IBM's port of Warp to Java to run on network computers.
Bluette
A free RAD IDE by Hyung G. Kim of South Korea. See RAD, IDE.
BNF
Backus Normal Form or Backus Naur Form. A way of formally describing the grammar of a language or set of commands. Each element in the language is described in terms of its component elements, which in turn are described by their components. There can be mandatory, optional or repeating elements. Definitions of terms can be recursive. The term BNF is loosely used to describe any scheme for describing a grammar from Burroughs railway diagrams to LALR, though properly it refers to Backus's original. It is useful mainly for language lawyers. People understand a grammar best from a carefully chosen set of examples. See YACC.
Bongo
Marímba's visual user interface builder and widget library in Java and for Java. See Marímba.
books
For a top ten list of Java books see the Java Pages. See book stores.
book stores
Clicking either logos or URLs below will take you as close as possible to that bookstore's section on Java books. I currently receive referral fees only from Amazon USA.

Be aware of additional costs when buying books online. These include: shipping, exchange, foreign taxes, domestic GST/VAT, additional shipping charges you pay on delivery, duty, customs broker fees, and the lastest to nail me, a $5 collection fee to pay for collecting cash for a $2.50 GST fee. You will almost always be quite unpleasantly surprised when you add it all up. Books online are usually slightly more expensive than buying them locally. Further, delivery is 4 to 12 weeks unless you pay extra.

The main advantages of online books are the wide selection, 24 hour service without leaving your home and the low warehouse and staff overhead for the vendor. The main disadvantages are you cannot browse the books, and you have to wait for them to be delivered.

Online Sellers of Java Books
Vendor Country URL

Aaronbooks logo Canadian flag
Canada
www.aaronbooks.com

Akademika logo Norwiegian flag
Norway
www.akademika.no

Amazon_de_logo German flag
Germany
www.amazon.de

Amazon logo American flag
USA
www.amazon.com

Amazon_uk_logo British flag
UK
www.amazon.co.uk

Barnes_and_Noble_logo American flag
USA
www.barnesandnoble.com

Book Pool American flag
USA
www.bookpool.com

Books Now logo American flag
USA
www.booksNow.com

Bookfinder_logo American flag
USA
www.bookfinder.com

Books.com_logo American flag
USA
www.books.com

bottomdollar.com
comparison shopper
American flag
USA
www.bottomdollar.com

Chapters_logo Canadian flag
Canada
www.ChaptersGLOBE.com

IT_Library_logo IT Library American flag
USA
www.itlibrary.com

KingBooks_logo Kingbooks American flag
USA
www.kingbooks.com

MacMillan_logo American flag
USA
www.mcp.com

mySimon_logo
comparison shopper
American flag
USA
www.mysimon.com

Powells_logo American flag
USA
www.powells.com

Shopping.com_logo
shopping search engine
American flag
USA
www.shopping.com

Wallmart_logo American flag
USA
www.wal-mart.com

See books, Personal Bookshelf.

Borland
The makers of JBuilder. They have renamed themselves Inprise in hopes the public will forget their good reputation with products like Delphi, C++, Turbo Pascal, Quattro Pro and dBase.
broken_linkBorneo
A charting package with classes for: bargraphs, stacked bars, histographs, auto-scroll trends, piecharts and transparent buttons.
BPS
Bits Per Second. This is the speed of a modem. Roughly speaking, divide this number by 10 to get the raw burst speed of the modem in characters per second (cps). You will often see the term Baud erroneously used as a synonym for BPS. To learn the difference, see the essay on RS232C. A 1200 BPS modem can send about 120 characters per second, a 2400 BPS, 240 characters. How close to the theoretical speed you achieve depends on your protocol. Zoomit and ZMODEM are very close to 100% efficient. XMODEM can be as low as 10% on packet nets.
BQM
Business Quality Monitoring. A new protocol to ensure that messages do not get lost between NT servers by issuing send and forget messages.
braces
Braces, also known as curly braces, look like this {}. Java uses them for surrounding the bodies of loops, methods and classes. See parentheses, brackets.
brackets
Brackets, also known as square brackets, look like this []. Java uses them for surrounding indexes for arrays. See parentheses, braces.
Bravo
An interface for drawing text and graphics both to screen and printer using a PostScript engine. There was great hoopla about it then deafening silence. I can't even find a reference to it on the Sun site. Brave New World rewrites history.
break
When a modem desperately wants to gain the attention of the other modem, it can send a long string of 0s, perhaps 250 milliseconds -- a quarter of a second. This is a pattern that could never occur naturally in data because it is lacking start/stop bits. Break usually means "Hold everything, stop the world, I want to get off."
bridge
See peer, design patterns.In datacommunications a bridge is a dumb device to link together to LANs. It moves all messages from one net to the other, independent of where the messages are destined. See router.
browser
A browser is a program to surf the web and run Java applets. How can you find out which browser is running your Applet? This code came from Dennis Brake dbrake@mitre.org.
public void init ()
{
if (getAppletContext().toString().startsWith ( "netscape.applet.MozillaAppletContext" ))
else if (getAppletContext().toString().startsWith ( "com.ms.applet.GenericAppletContext" ))
else if (getAppletContext().toString().startsWith ( "sunw.hotjava.tags.TagAppletPanel" ))
else if (getAppletContext().toString().startsWith ( "sun.applet.AppletViewer" ))
}
BSOD
Blue Screen Of Death. When Microsoft NT crashes, it posts a text-mode register dump with white text on a blue background.
bubblegum
The technical term for housekeeping code, particularly mindless, verbose housekeeping code or glue code that really should not clutter application specific code, but because of the Java language design, cannot easily be hidden inside library classes. See plumbing.
builder
See design patterns.
BuildHTML
BuildHTML will scan a directory tree of *.gif,*.jpg files and build HTML pages with icons for all the files. See the docs or download the source.
Business Java
The full Java language, including the AWT and the enterprise communications. There are subsets of it for small devices. See Personal Java, Embedded Java, Windows CE.
button
labeled push-button e.g. an OK button.
BYACC
a parser based on YACC that generates Java source code. See parser.
byte sex
See endian



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