Java Glossary

Last updated 1998 July 22 by Roedy Green ©1996-1998 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.
BAMBA
IBM's all-Java way of transmitting streaming audio and video over the web.
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.
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. See 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.
Bessiex
A collection of free Java source code for widgets, nodes, utilities, browsers etc.
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.
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();
big-endian
See endian
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.
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.

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 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.
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.
Borneo
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")) {
         environment = NETSCAPE_BROWSER;
      } else if (getAppletContext().toString().startsWith
                     ("com.ms.applet.GenericAppletContext")) {
         environment = MICROSOFT_BROWSER;
      } else if (getAppletContext().toString().startsWith
                     ("sunw.hotjava.tags.TagAppletPanel")) {
         environment = HOTJAVA_BROWSER;
      } else if (getAppletContext().toString().startsWith
                     ("sun.applet.AppletViewer")) {
         environment = APPLETVIEWER;
      }
   }
builder
See design patterns.
BuildHTML
BuildHTML will scan a 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



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